type constchar* 인수가 type "LPCWSTR" 매개 변수와 호환되지 않습니다.
Visual Studio 2012의 C에서 간단한 메시지 상자를 만들려고 하는데 다음과 같은 오류 메시지가 나타납니다.
argument of type const char* is incompatible with parameter of type "LPCWSTR"
err LNK2019:unresolved external symbol_main referenced in function_tmainCRTStartup
여기 소스코드가 있습니다.
#include<Windows.h>
int _stdcall WinMain(HINSTANCE hinstance,HINSTANCE hPrevinstance,LPSTR lpszCmdline,int nCmdShow)
{
MessageBox(0,"Hello","Title",0);
return(0);
}
제발 도와주세요.
감사하고 안부 전합니다
Visual C++에서 코드를 컴파일하려면 Wide char 대신 Multi-Byte char WinAPI 함수를 사용해야 합니다.
프로젝트 설정 -> 속성 -> 일반 -> 멀티바이트 문자 집합을 사용하는 문자 집합 옵션
여기 https://stackoverflow.com/a/33001454/5646315 에서 찾았습니다.
두 모드 모두에서 코드를 컴파일하려면 문자열을 _T()로 묶고 TCHAR 등가물을 사용합니다.
#include <tchar.h>
#include <windows.h>
int WINAPI _tWinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, LPTSTR lpszCmdLine, int nCmdShow)
{
MessageBox(0,_T("Hello"),_T("Title"),0);
return 0;
}
저는 최근 이 문제를 접하고 조사를 좀 했고 여기서 발견한 것 중 일부를 문서화하려고 생각했습니다.
시작하려면, 호출할 때MessageBox(...)
, 당신은 정말로 (역호환성의 이유로) 매크로를 호출하는 것입니다. 둘 중 하나를 호출하고 있습니다.MessageBoxA(...)
ANSI 인코딩 또는MessageBoxW(...)
유니코드 인코딩의 경우.
그래서 Visual Studio에서 기본 컴파일러 설정으로 ANSI 문자열을 전달하려면 다음을 호출할 수 있습니다.MessageBoxA(...)
대신:
#include<Windows.h>
int _stdcall WinMain(HINSTANCE hinstance,HINSTANCE hPrevinstance,LPSTR lpszCmdline,int nCmdShow)
{
MessageBoxA(0,"Hello","Title",0);
return(0);
}
에 대한 전체 설명서MessageBox(...)
위치: https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx
그리고 @cup이 그들의 답변에서 말한 것을 확장하기 위해, 당신은 사용할 수 있습니다._T()
매크로 및 계속 사용MessageBox()
:
#include<tchar.h>
#include<Windows.h>
int _stdcall WinMain(HINSTANCE hinstance,HINSTANCE hPrevinstance,LPSTR lpszCmdline,int nCmdShow)
{
MessageBox(0,_T("Hello"),_T("Title"),0);
return(0);
}
그_T()
macro가 문자열을 "문자 집합"으로 만들고 있습니다.기호를 정의하여 모든 문자열을 유니코드로 설정할 수 있습니다._UNICODE
document을 구축하기 전에.
이 정보가 귀하와 이 문제에 직면한 다른 사람들에게 도움이 되기를 바랍니다.
네, 잘못된 튜토리얼이었든 간에 긴 바이트 정수로 만들어야 합니다.
시도해 보기:
#include<Windows.h>
int _stdcall WinMain(HINSTANCE hinstance,HINSTANCE hPrevinstance,LPSTR lpszCmdline,int nCmdShow)
{
MessageBox(0,L"Hello",L"Title",0);
return(0);
}
언급URL : https://stackoverflow.com/questions/21834833/argument-of-type-const-char-is-incompatible-with-parameter-of-type-lpcwstr
'source' 카테고리의 다른 글
@change에서 Vue.js get selected 옵션 (0) | 2023.10.04 |
---|---|
사용자의 선호도에 따라 필터링하는 wrapper printf 기능 (0) | 2023.10.04 |
그릴 수 있는 색을 프로그래밍 방식으로 변경 (0) | 2023.10.04 |
즉시 실행할 때마다 커밋이 필요합니까? (0) | 2023.10.04 |
XML 형식의 줄 바꿈? (0) | 2023.10.04 |