Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > DLL не работает на другом компьютере.


Автор: RomanK 25.1.2012, 20:19
Вобщем написал я DLL-ку. Она использует библиотеку CURL, которую я до написания DLL-ки успешно скачал с оф.сайта, скопилил, и каким-то образом установил на свой комп. smile Точно не знаю каким образом, но об этом ниже.

На моем компьютере все хорошо работает. Программа, использующая эту DLL, успешно запускается и работает. Когда переношу эту DLL-ку на другой комп, то она уже не подключается, так как нехватает каких-то компонентов. Я подозреваю, что CURL нету, ибо на свой комп, кроме него, я ничего "со стороны" не ставил.

Далее провел тест на своем компе, убрал libcurld.dll с папки Windows. Как и подозревал, на моем компе выскочила ошибка. Но когда я эту DLL-ку (libcurld.dll) перемещаю на другой комп и тоже сую в папку Windows, никаких положительных результатов не вижу. Таким образом не понимаю, как мне этот курл на другом компе установить... Простым копированием DLL в папку Windows не лечится. :(

Перерыл инет, и нашел такое решение:
Установить в параметрах проекта Runtime Library в /MT, таким образом все сторонние библиотеки должны зашится в мою DLL-ку тем самым увеличив ее объем.

Круто думаю я, делаю так как сказано, компилирую, а на выходе получаю мегамного ошибок линковки. smile 

Потом еще повозился какие то параметры позаменял и в итоге имеем вот это:

Цитата

Creating library D:\XXX\Debug\Project.lib and object D:\XXX\Debug\Project.exp
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>Amber.obj : error LNK2019: unresolved external symbol __free_dbg referenced in function "private: void __thiscall std::_Yarn<char>::_Tidy(void)" (?_Tidy@?$_Yarn@D@std@@AAEXXZ)
1>libcpmtd.lib(xdebug.obj) : error LNK2001: unresolved external symbol __free_dbg
1>libcpmtd.lib(locale0.obj) : error LNK2001: unresolved external symbol __free_dbg
1>libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __free_dbg
1>libcpmtd.lib(xdebug.obj) : error LNK2019: unresolved external symbol __malloc_dbg referenced in function "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z)
1>libcpmtd.lib(locale0.obj) : error LNK2001: unresolved external symbol __malloc_dbg
1>libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __malloc_dbg
1>libcpmtd.lib(_tolower.obj) : error LNK2019: unresolved external symbol __calloc_dbg referenced in function __Getctype
1>libcpmtd.lib(stdthrow.obj) : error LNK2019: unresolved external symbol __CrtDbgReportW referenced in function "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z)
1>libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>D:\XXX\Debug\Project.dll : fatal error LNK1120: 4 unresolved externals


Каким образом это победить?

Делаю когда вот это: "use /NODEFAULTLIB:library", появляется еще больше ошибок, что ваще туши свет. smile 

Помогите пожалуйста. Спасибо.

Автор: Estranged 25.1.2012, 23:44
Скачайте http://technet.microsoft.com/en-us/sysinternals/bb896645. Запустите ее, потом запустите свое приложение. Вывалится с ошибкой, как я понял, это ошибка отсутсвия некой dll? Теперь находите в Process Monitor свой процесс, фильтруете по имени (правой кнопкой-Include-Process Name). Убеждаемся, что File System Activity кнопка нажата, теперь ищем строку с записью в колонке Result типа PATH NOT FOUND или NOT FOUND. Если после этого в логе видно, что процесс завершился, то скорее всего это из-за этой не найденной DLL. Если же эта dll прилинкована статически, т.е. явно загрузчик пишет, что dll такая вот не найдена. То задача еще проще. Можно использовать еще http://www.dependencywalker.com/. И есть подозрение, что именно Ваша DLL требует CRT, какую-нибудь MSVCRXX.DLL

Добавлено через 3 минуты и 30 секунд
И, судя по ошибкам, вы игнорируете CRT библиотеку.

Цитата(RomanK @  25.1.2012,  20:19 Найти цитируемый пост)
Круто думаю я, делаю так как сказано, компилирую, а на выходе получаю мегамного ошибок линковки.

Это какие именно?

Автор: Sahab 26.1.2012, 11:19
http://msdn.microsoft.com/en-us/library/Aa267384

пересобрать все используемые либы заново с одинаковыми флагами.

Автор: boostcoder 26.1.2012, 11:44
Цитата(Estranged @  25.1.2012,  23:44 Найти цитируемый пост)
судя по ошибкам, вы игнорируете CRT библиотеку

dll - законченный модуль. она не нуждается ни в чем при линковке с нею.

Добавлено через 2 минуты и 54 секунды
Цитата(Estranged @  25.1.2012,  23:44 Найти цитируемый пост)
есть подозрение, что именно Ваша DLL требует CRT, какую-нибудь MSVCRXX.DLL

да, возможно.
к примеру, если dll`ку собирали на win7 и пытаетесь использовать ее на winxp. побеждается статической линковкой зависимостей dll`ки.

Автор: baldina 26.1.2012, 14:53
Цитата(boostcoder @  26.1.2012,  11:44 Найти цитируемый пост)
 если dll`ку собирали на win7 и пытаетесь использовать ее на winxp

это зависит от исходного кода, от компилятора/линкера и их параметров, но не от ОС.

Автор: RomanK 26.1.2012, 15:59
Цитата

И есть подозрение, что именно Ваша DLL требует CRT, какую-нибудь MSVCRXX.DLL

Да!!! Запускал на компьютере dependency walker. Говорилось что нету такой библиотеки. MSVCR100D.dll вот такая.

Цитата

к примеру, если dll`ку собирали на win7 и пытаетесь использовать ее на winxp.

ИМЕННО ТАК! smile 

Цитата

побеждается статической линковкой зависимостей dll`ки.

Объясни плиз поподбробней. Не понимаю, что за статическая линковка зависимостей.

Может надо было компилить CURL тоеж с флагом Runtime Library = /MT ???

Автор: RomanK 26.1.2012, 17:02
Что то накрутил, и теперь вот такие ошибки стали вылезать:

Цитата

1>------ Build started: Project: Project, Configuration: Debug Win32 ------
1>Build started 26.01.2012 17:59:13.
1>InitializeBuildStatus:
1>  Creating "Debug\Project.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  All outputs are up-to-date.
1>  md5.cpp
1>  Project.cpp
1>  Generating Code...
1>ManifestResourceCompile:
1>  All outputs are up-to-date.
1>Project.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(double)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: class std::locale::facet * __thiscall std::locale::facet::_Decref(void)" (?_Decref@facet@locale@std@@QAEPAV123@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: class std::locale __thiscall std::ios_base::getloc(void)const " (?getloc@ios_base@std@@QBE?AVlocale@2@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: void __thiscall std::locale::facet::_Incref(void)" (?_Incref@facet@locale@std@@QAEXXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: virtual __thiscall std::basic_ios<char,struct std::char_traits<char> >::~basic_ios<char,struct std::char_traits<char> >(void)" (??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: virtual __thiscall std::basic_iostream<char,struct std::char_traits<char> >::~basic_iostream<char,struct std::char_traits<char> >(void)" (??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: virtual __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::~basic_streambuf<char,struct std::char_traits<char> >(void)" (??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: virtual void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEXXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: virtual void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" (?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEXXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: virtual __int64 __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::showmanyc(void)" (?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: virtual int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::uflow(void)" (?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: virtual __int64 __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::xsgetn(char *,__int64)" (?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPAD_J@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: virtual __int64 __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::xsputn(char const *,__int64)" (?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPBD_J@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: virtual class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::setbuf(char *,__int64)" (?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PAD_J@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: virtual int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sync(void)" (?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: virtual void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::imbue(class std::locale const &)" (?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: __thiscall std::_Container_base12::_Container_base12(void)" (??0_Container_base12@std@@QAE@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: void __thiscall std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QAEXXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: __thiscall std::basic_ios<char,struct std::char_traits<char> >::basic_ios<char,struct std::char_traits<char> >(void)" (??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::eback(void)const " (?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::gptr(void)const " (?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::pbase(void)const " (?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::pptr(void)const " (?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::egptr(void)const " (?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::gbump(int)" (?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::setg(char *,char *,char *)" (?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::epptr(void)const " (?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::pbump(int)" (?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::setp(char *,char *)" (?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::setp(char *,char *,char *)" (?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Pninc(void)" (?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: __thiscall std::basic_iostream<char,struct std::char_traits<char> >::basic_iostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *)" (??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: bool __thiscall std::ios_base:smile(void)const " (?good@ios_base@std@@QBE_NXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags@ios_base@std@@QBEHXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "protected: __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::basic_streambuf<char,struct std::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: __thiscall std::locale::id::operator unsigned int(void)" (??Bid@locale@std@@QAEIXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: static unsigned int __cdecl std::ctype<char>::_Getcat(class std::locale::facet const * *,class std::locale const *)" (?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@PBV42@@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: __int64 __thiscall std::ios_base::width(void)const " (?width@ios_base@std@@QBE_JXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: __int64 __thiscall std::ios_base::width(__int64)" (?width@ios_base@std@@QAE_J_J@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: bool __thiscall std::ctype<char>::is(short,char)const " (?is@?$ctype@D@std@@QBE_NFD@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sgetc(void)" (?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::snextc(void)" (?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ) already defined in msvcprtd.lib(MSVCP100D.dll)
1>Project.obj : error LNK2005: "public: bool __thiscall std::basic_istream<char,struct std::char_traits<char> >::_Ipfx(bool)" (?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z) already defined in msvcprtd.lib(MSVCP100D.dll)
1>     Creating library D:\XXX\Debug\Project.lib and object D:\XXX\Debug\Project.exp
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>Project.obj : error LNK2019: unresolved external symbol __free_dbg referenced in function "private: void __thiscall std::_Yarn<char>::_Tidy(void)" (?_Tidy@?$_Yarn@D@std@@AAEXXZ)
1>libcpmtd.lib(xdebug.obj) : error LNK2001: unresolved external symbol __free_dbg
1>libcpmtd.lib(locale0.obj) : error LNK2001: unresolved external symbol __free_dbg
1>libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __free_dbg
1>libcpmtd.lib(xdebug.obj) : error LNK2019: unresolved external symbol __malloc_dbg referenced in function "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z)
1>libcpmtd.lib(locale0.obj) : error LNK2001: unresolved external symbol __malloc_dbg
1>libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __malloc_dbg
1>libcpmtd.lib(_tolower.obj) : error LNK2019: unresolved external symbol __calloc_dbg referenced in function __Getctype
1>libcpmtd.lib(stdthrow.obj) : error LNK2019: unresolved external symbol __CrtDbgReportW referenced in function "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z)
1>libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>D:\XXX\Debug\Project.dll : fatal error LNK1120: 4 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:03.88
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Автор: boostcoder 26.1.2012, 19:21
Цитата(baldina @  26.1.2012,  14:53 Найти цитируемый пост)
но не от ОС

ну ты чё?!

msvcrt.dll на win7 и на winxp имеют разные списки экспорта, ибо микрософт начал урезать экспортируемые имена готовясь к выходу win8.

Автор: RomanK 26.1.2012, 19:22
Цитата(boostcoder @  26.1.2012,  19:21 Найти цитируемый пост)
msvcrt.dll на win7 и на winxp имеют разные списки экспорта, ибо микрософт начал урезать экспортируемые имена готовясь к выходу win8. 

И что делать ?

Добавлено через 54 секунды
Скажите, есть смысл компилить CURL с параметром Runtime Library = /MT, а потом собирать мой с таким же параметром? или нет?

Автор: boostcoder 26.1.2012, 19:28
Цитата(RomanK @  26.1.2012,  19:22 Найти цитируемый пост)
И что делать ?

таскать используемую CRTтишку с прогой.


Цитата(RomanK @  26.1.2012,  19:22 Найти цитируемый пост)
Скажите, есть смысл компилить CURL с параметром Runtime Library = /MT, а потом собирать мой с таким же параметром? или нет?

по микрософт компилятору я вряд ли что умное скажу smile

Автор: RomanK 26.1.2012, 19:32
Цитата(boostcoder @  26.1.2012,  19:28 Найти цитируемый пост)
таскать используемую CRTтишку с прогой.

Что такое CRTтишка? smile 

Автор: boostcoder 26.1.2012, 19:53
Цитата(RomanK @  26.1.2012,  19:32 Найти цитируемый пост)
Что такое CRTтишка?

msvcrt.dll

Добавлено через 6 минут и 8 секунд
по моему, мы отклонились от сути топика...

Автор: RomanK 26.1.2012, 20:26
Вобщем я вроде разобрался по теме топика.

Скачал заного новый CURL от января сего года. Скомпилил его заного.

Далее создал новый проект. Добавил туда все исходники своей библиотеки. Прописал где надо брать CURL-овские библиотеки. Выставил параметр Runtime Library = /MT и попробовал скомпильнул. Все сделалось без единой ошибки. smile Работает на трех компах. Два с Windows 7, один с XP.

Единственное, что надо таскать с проектом две DLL. Одну мою, а другую - libcurl.dll. Впринципе не особо геморой, но все же хотелось бы замутить все в одной DLL-ке. Может разбирусь на досуге. Или может кто здесь подскажет?

Автор: Modul 26.1.2012, 21:57
Цитата(RomanK @  26.1.2012,  20:26 Найти цитируемый пост)
Единственное, что надо таскать с проектом две DLL. Одну мою, а другую - libcurl.dll. Впринципе не особо геморой, но все же хотелось бы замутить все в одной DLL-ке. Может разбирусь на досуге. Или может кто здесь подскажет?



А почему две ?

Добавлено через 6 минут и 41 секунду
 Видимо 2 DLL правильно: 1 - для CURL, 2 - для проекта

Пиши Рома !

Автор: RomanK 26.1.2012, 22:22
Цитата(Modul @  26.1.2012,  21:57 Найти цитируемый пост)
Видимо 2 DLL правильно: 1 - для CURL, 2 - для проекта

Правильно! smile 


Цитата(Modul @  26.1.2012,  21:57 Найти цитируемый пост)
Пиши Рома ! 

Че писать? smile

Автор: Dem_max 28.1.2012, 13:23
убери в своем проекте или в коде такую строку
Код

/NODEFAULTLIB

Автор: RomanK 29.1.2012, 11:55
Dem_max, а зачем, объясни пожалуйста? Что это даст?

Автор: Dem_max 29.1.2012, 15:46
Потому что в стандартном проекте этого не должно быть. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)