오래된 Ansi 문자열 배열을 시뮬레이션하는 것은 지저분하지만 여전히 가능합니다. (특히 배열의 내용을 변경하여 데이터를 MQL4로 다시 전달하는 경우 DLL이 올바르게 작동하는지 여부에 따라 달라집니다. 더 현실적인 것이 아니라 맨 아래에 있는 예제 C++ 코드에 대해서만 테스트했습니다. MySql 라이브러리처럼.)
예를 들어 위의 코드는 배열의 각 문자열에 대해 메시지 상자를 수행한 다음 MT4로 돌아가기 전에 문자열을 뒤집는 다음 DLL과 함께 작동합니다.
오래된 Ansi 문자열 배열을 시뮬레이션하는 것은 지저분하지만 여전히 가능합니다. (특히 배열의 내용을 변경하여 데이터를 MQL4로 다시 전달하는 경우 DLL이 올바르게 작동하는지 여부에 따라 달라집니다. 더 현실적인 것이 아니라 맨 아래에 있는 예제 C++ 코드에 대해서만 테스트했습니다. MySql 라이브러리처럼.)
예를 들어 위의 코드는 배열의 각 문자열에 대해 메시지 상자를 수행한 다음 MT4로 돌아가기 전에 문자열을 뒤집는 다음 DLL과 함께 작동합니다.
귀하의 스니펫이 얼마나 도움이 되는지 설명할 수 없습니다. 정말 감사합니다! 나는 당신이 언급한 기술과 EAX MySQL 라이브러리 (MQL5)에서 찾은 기술을 사용하여 libmysql.dll(ANSI)과 통신하는 순수 MQL4(UNICODE 버전용)로 MySQL 래퍼를 작성했습니다.
거기에 있는 내 코드를 살펴 보고 개선할 수 있다고 확신하는 부분에 대해 개선하거나 기여할 수 있다면 정말 감사하겠습니다.
gchrmt4,
DLL 함수 호출을 통해 문자열을 전달하거나 샘플 코드를 알려주는 방법을 알려주시겠습니까?
내가 찾고 있는 것은 다음과 같은 통화를 할 수 있다는 확인입니다.
#수입
int call_a_string_function(문자열 this_is_a_string);
#수입
...
...
string foo1 = "이것은 문자열입니다";
int retruncode = call_a_string_function(foo1);
그렇다면 위의 함수에 대한 C 코드는 어떻게 생겼을까요? 나는 단지 일상적인 예를 찾고 있습니다.
예
int call_a_string_function(char *this_is_a_string);
등
어떤 사람들은 배열이나 char 배열 등을 사용한다고 말합니다. 나는 약간의 설명을 찾고 있습니다. 메모리 누수 등을 언급했듯이 최상의 접근 방식에 대한 간단한 샘플입니다.
문안 인사
고릭
gchrmt4,
DLL 함수 호출을 통해 문자열을 전달하거나 샘플 코드를 알려주는 방법을 알려주시겠습니까?
내가 찾고 있는 것은 다음과 같은 통화를 할 수 있다는 확인입니다.
#수입
int call_a_string_function(문자열 this_is_a_string);
#수입
...
...
string foo1 = "이것은 문자열입니다";
int retruncode = call_a_string_function(foo1);
그렇다면 위의 함수에 대한 C 코드는 어떻게 생겼을까요? 나는 단지 일상적인 예를 찾고 있습니다.
예
int call_a_string_function(char *this_is_a_string);
등
어떤 사람들은 배열이나 char 배열 등을 사용한다고 말합니다. 나는 약간의 설명을 찾고 있습니다. 메모리 누수 등을 언급했듯이 최상의 접근 방식에 대한 간단한 샘플입니다.
문안 인사
고릭
네, 감사합니다. 정말 잘 제시되고 내가 기대했던 것. 그러나 문자열에 문제가 있는 것 같습니다.
나는 문자열 값을 입력으로 받아들이고 파일에 쓰기 위해 C로 그 문서에서 샘플을 만들었습니다.
나는 값을 확인 하기 위해 파일에 씁니다.MQL은 다음과 같습니다.
파일 출력은 다음과 같습니다.다음은 문자열 값입니다. R foooooooooooo1
전달된 문자열의 "R" 또는 첫 번째 문자만 반환합니까? 내가 올바르게 인쇄하고 있는지 확인하기 위해 "foooooooooooo1"이 삽입되었습니다.
아무도 내가 뭘 잘못하고 있는지 알고 있습니까?
네, 감사합니다. 정말 잘 제시되고 내가 기대했던 것. 그러나 문자열에 문제가 있는 것 같습니다.
문자열 값을 입력으로 받아들이고 파일에 쓰기 위해 C에서 해당 문서의 샘플을 만들었습니다(예: 아래).
<제거됨>
아무도 내가 뭘 잘못하고 있는지 알고 있습니까?
문제는 MQL4가 아니라 C 코드에 있습니다.
printf()의 %s는 "Ansi 문자열"을 의미합니다. %ls을(를) 사용해야 합니다.
네, 감사합니다. 정말 잘 제시되고 내가 기대했던 것. 그러나 문자열에 문제가 있는 것 같습니다.
문자열 값을 입력으로 받아들이고 파일에 쓰기 위해 C에서 해당 문서의 샘플을 만들었습니다(예: 아래).
나는 값을 확인하기 위해 파일에 씁니다.MQL은 다음과 같습니다.
파일 출력은 다음과 같습니다.다음은 문자열 값입니다. R foooooooooooo1
전달된 문자열의 "R" 또는 첫 번째 문자만 반환합니까? 내가 올바르게 인쇄하고 있는지 확인하기 위해 "foooooooooooo1"이 삽입되었습니다.
아무도 내가 뭘 잘못하고 있는지 알고 있습니까?
여보세요,
코드를 게시할 때 SRC 버튼을 사용하십시오. 고맙습니다.
이번에는 여러분을 위해 편집했습니다.
여보세요,
코드를 게시할 때 SRC 버튼을 사용하십시오. 고맙습니다.
이번에는 여러분을 위해 편집했습니다.
죄송합니다. 여기에 게시하는 것은 정말 새롭습니다.
입력해 주셔서 감사합니다. 정말 감사합니다.
이것이 의미하는 바는 모든 기존 샘플이 정확하지 않다는 것입니다. 유니코드를 사용해야 합니다. 저는 DLL 프로그래밍에 매우 익숙하기 때문에 최근에 처음부터 시작했기 때문에 주어진 샘플에 크게 의존했습니다. 또한 우연히 600 빌드를 동시에 사용하기 시작했습니다.
오랫동안 이 일을 해왔다면 상황을 완전히 알고 있다고 생각합니다. 저는 불행히도 그렇지 않습니다. 이 포럼에서 정보와 조언의 스니펫만 얻고 있습니다.
제 무지에 대해 사과드립니다.
안부 및 감사
누구든지 더 잘할 수 있는 방법에 대한 제안이 있으면 알려주십시오.
다시 한번 감사드립니다.
누구든지 더 잘할 수 있는 방법에 대한 제안이 있으면 알려주십시오.
다시 한번 감사드립니다.