我试图掌握使用Windows API函数,但让它们正常工作证明是困难的 .
在VS2015中,每当我调用 MessageBox()
或类似的东西时,我的C代码当前都会产生链接器错误:
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
using namespace System;
int main()
{
Console::WriteLine(L"Hello World");
MessageBox(NULL, L"Stuff", L"Things", MB_OK | MB_ICONEXCLAMATION);
return 0;
}
我得到的错误是一个未解析的令牌和一个未解析的外部符号,消息中出现 MessageBoxW
.
其中一条错误消息:错误LNK2028未解析的令牌(0A0004E9)"extern " C“int stdcall MessageBoxW(struct HWND *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z) referenced in function " extern "C" int cdecl MessageBox(struct HWND *,wchar_t const *,wchar_t const *,unsigned int)” (?@@消息框$$ J0YAHPAUHWND __ @@ PB_W1I @ Z)
1 回答
您不小心创建了一个.net项目,这意味着您不会使用Windows API,至少在没有对项目进行某些更改的情况下 . 您需要创建一个Win32项目,而不是.net项目 .