|
|
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
написал dll (win32 api, vs 2005 sp1) хочу забацать статической библиотекой, но при компиляции выплывают следующие ошибки ошибкиRString.obj : error LNK2019: unresolved external symbol __imp___wassert referenced in function "public: __thiscall RString::RString(char)" (??0RString@@QAE@D@Z) RString.obj : error LNK2019: unresolved external symbol __imp__memcpy_s referenced in function "public: __thiscall RString::RString(char const *)" (??0RString@@QAE@PBD@Z) RString.obj : error LNK2019: unresolved external symbol __imp___wcsdup referenced in function "public: bool __thiscall RString::ConvertToOem(void)" (?ConvertToOem@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp___strdup referenced in function "public: bool __thiscall RString::ConvertToUnicode(void)" (?ConvertToUnicode@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp___strrev referenced in function "public: bool __thiscall RString::MakeReverse(void)" (?MakeReverse@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp___wcsrev referenced in function "public: bool __thiscall RString::MakeReverse(void)" (?MakeReverse@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp___strupr_s referenced in function "public: bool __thiscall RString::MakeUpper(void)" (?MakeUpper@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp___wcsupr_s referenced in function "public: bool __thiscall RString::MakeUpper(void)" (?MakeUpper@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp___wsetlocale referenced in function "public: bool __thiscall RString::MakeUpper(void)" (?MakeUpper@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp___strlwr_s referenced in function "public: bool __thiscall RString::MakeLower(void)" (?MakeLower@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp___wcslwr_s referenced in function "public: bool __thiscall RString::MakeLower(void)" (?MakeLower@RString@@QAE_NXZ) RString.obj : error LNK2019: unresolved external symbol __imp__strstr referenced in function "char * __cdecl strstr(char *,char const *)" (?strstr@@YAPADPADPBD@Z) RString.obj : error LNK2019: unresolved external symbol __imp__wcsstr referenced in function "wchar_t * __cdecl wcsstr(wchar_t *,wchar_t const *)" (?wcsstr@@YAPA_WPA_WPB_W@Z) RString.obj : error LNK2019: unresolved external symbol __imp__wcscspn referenced in function "public: int __thiscall RString::FindOneOf(wchar_t const *,bool,unsigned int)" (?FindOneOf@RString@@QAEHPB_W_NI@Z) насколько я понимаю, он просто не может найти нужных версий этих функций для сборки статиком подскажите, что мне делать, может проект не так настроен? Спасибо! -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 10:49 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
Cerebrum wrote: > написал dll (win32 api, vs 2005 sp1) хочу забацать статической > библиотекой, но при компиляции выплывают следующие ошибки 1) Насколько я понимаю, dll - Dynamic Linking, *.lib - Static Linking. Делаем *.lib? 2) Компилируем что? *.lib или проект с ним? 3) Выглядит так, как если бы не была подключена либа, где эти функции были объявлены. Нужно залезть в справку и посмотреть, какой *.lib файл требуется для использования этих функций. (насколько я понимаю, это функции стандартного CRT), потом прописать его либо на вкладке linking, либо (если правильно помню, для *.lib) - Librarian. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 10:58 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
мне нужна dll + lib к ней, но так чтобы не нужно было за собой таскать всякие стандартные msvcr'ы и еще вопросик вот к примеру есть библиотека - dll, в ней есть экспортируемый класс объявленный следующим образом class __declspec(dllexport) CAnyClass {....блабла....}; если я пишу программу использующую эту библиотеку, то соответственно я подключаю заголовочные файлы, в которых объявлен этот класс, получается что в этой программе этот класс будет опять объявлен как экспортируемый и экзешник будет нести в себе спец. объявление класса для тех, кто захочет его подцепить, но мне этого не нужно, для этого есть dll. Будет ли правильным создать еще один хедер (копию того самого) с интерфейсом этого класса, но уже без упоминания о необходимости экспорта? -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 11:13 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
Cerebrumвот к примеру есть библиотека - dll, в ней есть экспортируемый класс объявленный следующим образом class __declspec(dllexport) CAnyClass {....блабла....}; если я пишу программу использующую эту библиотеку, то соответственно я подключаю заголовочные файлы, в которых объявлен этот класс, получается что в этой программе этот класс будет опять объявлен как экспортируемый и экзешник будет нести в себе спец. объявление класса для тех, кто захочет его подцепить, но мне этого не нужно, для этого есть dll. Будет ли правильным создать еще один хедер (копию того самого) с интерфейсом этого класса, но уже без упоминания о необходимости экспорта? да нет, зачем? нужно в хидере написать конструкцию подобную этой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 11:54 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
понятно, я думал что эта фича только с функциями работает -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 12:12 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
Cerebrum wrote: > мне нужна dll + lib к ней, но так чтобы не нужно было за собой таскать > всякие стандартные msvcr'ы Тогда надо выставить (не помню где) использование CRT в Multithreaded вместо Multithreaded DLL. Хотя "таскать MSVCRT" будет экономнее - при таком раскладе код CRT продублируется и в *.dll и в *.exe. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 12:12 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
ErVпри таком раскладе код CRT продублируется и в *.dll и в *.exe. Posted via ActualForum NNTP Server 1.4 размер не принципиален, да и не сильно разрастется в релизе, программа должна работать сразу на только что установленной машине ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 12:15 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
Cerebrum wrote: > размер не принципиален, да и не сильно разрастется в релизе, программа > должна работать сразу на только что установленной машине Почитай в MSDN статью "Deploying Applications". Там было рассказано, как это делать. Если не ошибаюсь, надо было манифесты в папку с приложением скинуть (вместе с *.dll'ками), либо запускать vcredist_x86.exe в случае проблем. проще всего с Win2k - там схема с манифестами не поддерживается. то есть, должно работать просто если *.dll'ки в папке с программой. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 12:24 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
ErV Почитай в MSDN статью "Deploying Applications". Там было рассказано, как это делать. Если не ошибаюсь, надо было манифесты в папку с приложением скинуть (вместе с *.dll'ками), либо запускать vcredist_x86.exe в случае проблем. проще всего с Win2k - там схема с манифестами не поддерживается. то есть, должно работать просто если *.dll'ки в папке с программой. Posted via ActualForum NNTP Server 1.4 я в курсе насчет этого, спс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 12:35 |
|
||
|
Static Linking
|
|||
|---|---|---|---|
|
#18+
по первому вопросу: самое интересное что ругается он только на один класс из нескольких десятков, в котором я использовал, как видно из списка ошибок wchar_t -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 12:45 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34637522&tid=2028569]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 496ms |

| 0 / 0 |
