Estoy tratando de construir una aplicación de consola sin usar el CRT, o cualquier otra importación que kernel32.lib en cualquier caso. Consigo mi código para compilar, pero no puedo envolver el enlazador en torno a algunos problemas:¿Construir aplicaciones de consola sin CRT y encabezados predeterminados?
unresolved external symbol @[email protected]
unresolved external symbol "int __cdecl FreeLibrary(void *)" ([email protected]@[email protected])
unresolved external symbol "void * __cdecl LoadLibraryW(wchar_t *)" ([email protected]@[email protected])
unresolved external symbol "int (__cdecl*__cdecl GetProcAddress(void *,char *))(void)" ([email protected]@[email protected])
unresolved external symbol _wmainCRTStartup
FreeLibrary, LoadLibraryW y GetProcAddress He traído a programar de forma explícita, no usar 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);
Supongo que algo anda mal con mis prototipos. Sin embargo, el problema más grande es __security_check_cookie
y _wmainCRTStartup
, que obviamente tienen algo que ver con el CRT. Así que me pregunto cómo voy a sobreescribir el valor predeterminado int wmain(int argc, wchar_t* argv[])
para el punto de entrada, y cómo deshacerme de lo que sea la cookie de seguridad.
En realidad los probé como llamadas estándar ya, y no resolvió el problema. – anon6439