함수는 N 문자로 끝나는 문자 시퀀스에 대한 포인터 인 C 스타일 문자열을 필요로합니다.
당신이 전달한 것은 실제로 잘못된 입력입니다. "A $^a! bunch? * of - @ (불쾌한^& + 쓰레기 {%"대신 "A"가 있습니다. 당신은 0 아마 때문에 어셈블러에 의해 삽입 된 패딩, 당신의 points
일정 후 배치했다 운이 있어요. 당신이 당신의 윈도우의 캡션으로 수를 표시 할 경우에, 당신이 먼저 변환해야합니다
숫자를 문자열로 변환하는 방법이 있습니다. 여러 가지 방법이 있습니다. 가장 간단한 방법은 Win32 API에 연결 했으므로 wsprintf
을 호출하는 것입니다. C 런타임 라이브러리에 링크 ary와 snprintf
로 전화하십시오. 또는 숫자를 문자열로 변환하는 고유 한 코드를 작성할 수 있습니다.
당신의 문자열이 정적이라고 가정하면, 더 나은 접근 방식은 단순히 처음부터 문자열을 사용하는 것입니다 :
points db "65",0
(points
보다 더 좋은 이름을 선택 할 수 있습니다).
또한 Windows는 유니 코드 기반 운영 체제이며 2 바이트 UTF-16 유형을 통해 유니 코드를 구현합니다. 따라서 항상 명시 적으로 W
- 포함 된 Windows API 함수 (또는 UNICODE
및 _UNICODE
기호 정의)를 호출해야하며 문자열 문자는 WORD 크기 여야합니다. 따라서 코드는 다음과 같습니다
strCaption dw '6','5',0
invoke CreateWindowExW,0,ADDR classStatic,ADDR strCaption, WS_CHILD or WS_VISIBLE,100,100,50,50,hWnd,0,hInstance,0
당신은 텍스트로 변환 할 필요가있다. 예를 들어'snprintf'를 보시려면 – Jester
65는 두 개의 문자, '6'과 '5'입니다. 바이너리 (65)에서 문자열 ('65')로 변환하는 자체 프로 시저를 만들 수 있습니다. –