【发布时间】:2008-11-20 11:59:00
【问题描述】:
我正在尝试在不使用 CRT 或任何其他导入而不是 kernel32.lib 的情况下构建控制台应用程序。我可以编译我的代码,但无法将链接器封装在一些问题上:
unresolved external symbol @__security_check_cookie@4
unresolved external symbol "int __cdecl FreeLibrary(void *)" (?FreeLibrary@@YAHPAX@Z)
unresolved external symbol "void * __cdecl LoadLibraryW(wchar_t *)" (?LoadLibraryW@@YAPAXPA_W@Z)
unresolved external symbol "int (__cdecl*__cdecl GetProcAddress(void *,char *))(void)" (?GetProcAddress@@YAP6AHXZPAXPAD@Z)
unresolved external symbol _wmainCRTStartup
FreeLibrary、LoadLibraryW 和 GetProcAddress 我已经明确引入了程序,而不是使用 windows.h:
#pragma comment(lib, "kernel32.lib")
typedef int(*FARPROC)();
void* LoadLibraryW( wchar_t* lpLibFileName );
FARPROC GetProcAddress( void* hModule, char* lpProcName );
int FreeLibrary( void* hLibModule );
我想我的原型有问题。
但是,更大的问题是__security_check_cookie 和_wmainCRTStartup,这显然与CRT 有关。
所以我想知道如何覆盖入口点的默认int wmain(int argc, wchar_t* argv[]),以及如何摆脱安全cookie。
【问题讨论】:
标签: c++ windows visual-studio-2008 visual-c++