Использую 2008 студию. Линкую по возможности со старой ДЛЛ, что в теме, а от MSVCR90 отказываюсь. Но текущий проект активно использует DOTNET, короче MC++. Есть ли возможность отказаться от MSVCR90 в полльзу MSVCRT и в тоже время использовать .NET? При попытке возникает ошибка линкеры: Unresolved external ctor.
по-ходу, нельзя.. у меня выдает кучу ошибок линковки при отказе от msvcrt.lib в пользу такой же либы от 6й студии Код (Text): clrconsole.obj : error LNK2001: unresolved external symbol "extern "C" int __cdecl __CxxExceptionFilter(void *,void *,int,void *)" (?__CxxExceptionFilter@@$$J0YAHPAX0H0@Z) clrconsole.obj : error LNK2001: unresolved external symbol "extern "C" int __cdecl __CxxRegisterExceptionObject(void *,void *)" (?__CxxRegisterExceptionObject@@$$J0YAHPAX0@Z) clrconsole.obj : error LNK2001: unresolved external symbol "extern "C" int __cdecl __CxxDetectRethrow(void *)" (?__CxxDetectRethrow@@$$J0YAHPAX@Z) clrconsole.obj : error LNK2001: unresolved external symbol "extern "C" int __cdecl __CxxQueryExceptionSize(void)" (?__CxxQueryExceptionSize@@$$J0YAHXZ) clrconsole.obj : error LNK2001: unresolved external symbol "extern "C" void __cdecl __CxxUnregisterExceptionObject(void *,int)" (?__CxxUnregisterExceptionObject@@$$J0YAXPAXH@Z) MSVCMRT.lib(mstartup.obj) : error LNK2001: unresolved external symbol ___native_dllmain_reason MSVCMRT.lib(mstartup.obj) : error LNK2001: unresolved external symbol ___native_vcclrit_reason MSVCMRT.lib(mstartup.obj) : error LNK2001: unresolved external symbol ___native_startup_state MSVCMRT.lib(mstartup.obj) : error LNK2001: unresolved external symbol "extern "C" void __cdecl __security_init_cookie(void)" (?__security_init_cookie@@$$J0YAXXZ) MSVCMRT.lib(mstartup.obj) : error LNK2001: unresolved external symbol ___native_startup_lock MSVCMRT.lib(msilexit.obj) : error LNK2001: unresolved external symbol "extern "C" void * __cdecl _encode_pointer(void *)" (?_encode_pointer@@$$J0YAPAXPAX@Z) MSVCMRT.lib(msilexit.obj) : error LNK2001: unresolved external symbol "extern "C" void * __cdecl _decode_pointer(void *)" (?_decode_pointer@@$$J0YAPAXPAX@Z) MSVCMRT.lib(msilexit.obj) : error LNK2001: unresolved external symbol "extern "C" void * __cdecl _encoded_null(void)" (?_encoded_null@@$$J0YAPAXXZ) MSVCMRT.lib(managdeh.obj) : error LNK2001: unresolved external symbol "extern "C" int __cdecl __FrameUnwindFilter(struct _EXCEPTION_POINTERS *)" (?__FrameUnwindFilter@@$$J0YAHPAU_EXCEPTION_POINTERS@@@Z) D:\Progs\clrconsole\Release\clrconsole.exe : fatal error LNK1120: 14 unresolved externals
Asterix статическая линковка с ключём /clr не возможна увы. Проблема в необходимости таскать за собой VCREDIST Packege. Не получается даже таскать с собой только нужные DLL, типа MSVCR90 ... можно было бы запихать их в ресурсы... Но увы. Great unresolved external symbol "extern "C" void * __cdecl _encode_pointer(void *)" (?_encode_pointer@@$$J0YAPAXPAX@Z) unresolved external symbol "extern "C" void * __cdecl _decode_pointer(void *)" (?_decode_pointer@@$$J0YAPAXPAX@Z) unresolved external symbol "extern "C" void * __cdecl _encoded_null(void) unresolved external symbol "extern "C" int __cdecl __FrameUnwindFilter(st добился зависимости только от 4 Но что то не легче.
Вот интересные постеги: http://nn1234.wordpress.com/2008/04/11/vc-90-msvcrtdll-windows-95/ http://kobyk.wordpress.com/2007/07/20/dynamically-linking-with-msvcrtdll-using-visual-c-2005/ Вникаю. Пробовал вроде как надо. 4 unresolved externals, что выше.
А если вытищить их из исходников CRT и вставить в проект?? Эт так мысли вслух) Я полагаю так просто как кажется естественно не будет?! Какие камни меня ждут??