Как привязать *.lib-файл?
От: -NiTR0-  
Дата: 10.10.05 12:16
Оценка:
Народ, помогите пожалуйста. Не могу понять в чем дело.
Visual C++.NET v.7.1
Приложение Win32 — Dynamic Library (.dll)
Есть файл My.lib, нужно его подключить.

В настройках проекта пишу:
Linker -> General -> Additional Library Directories = "Полный путь к My.lib"
Linker -> Input -> Add Module to Assembly = My.lib
В *.cpp проекта подключаю *.h, которая требуется My.lib.

Но при вызове ф-ий из My.lib, например:
#include "My.h"
extern "C" BOOL CALLBACK InitCR(...);
...
BOOL CALLBACK InitCR(...)
{
      ...
      ConnectDevice(...);
      ...
}
...

появляется ошибка линкера:
error LNK2019: unresolved external symbol "unsigned long __stdcall ConnectDevice(unsigned int,enum SENDER_TYPE,unsigned long,char const * const,unsigned long * const,unsigned short * const)" (?ConnectDevice@@YGKIW4SENDER_TYPE@@KQBDQAKQAG@Z) referenced in function _InitCR@4

СКАЖИТЕ, ЧЕГО ЕЩЕ НАДО СДЕЛАТЬ?
Спасибо.
Re: Как привязать *.lib-файл?
От: Andrbig  
Дата: 10.10.05 12:20
Оценка:
Здравствуйте, -NiTR0-, Вы писали:

NTR>СКАЖИТЕ, ЧЕГО ЕЩЕ НАДО СДЕЛАТЬ?


Ты уверен, что не напутал с extern C у ConnectDevice? Судя по ошибке, линкер ищет C++-style функцию.

Если не поможет, выкладывай .lib, .h и .c, дабы можно было попробовать.
Re[2]: Как привязать *.lib-файл?
От: -NiTR0-  
Дата: 10.10.05 12:58
Оценка:
Здравствуйте, Andrbig, Вы писали:
A>Ты уверен, что не напутал с extern C у ConnectDevice? Судя по ошибке, линкер ищет C++-style функцию.

Так, я же [extern C] не для ConnectDevice(), а для InitCR() пишу, чтобы ей потом из другого приложения(тестового) пользоваться. Хотя... ConnectDevice() в InitCR() находится... блин. Но все равно не выходит

A>Если не поможет, выкладывай .lib, .h и .c, дабы можно было попробовать.


Я прикрепил rar-чик, посмотрите пожалуйста. http://www.rsdn.ru:80/File/43494/CardReader-3k5.rar
Re[2]: Как привязать *.lib-файл?
От: -NiTR0-  
Дата: 10.10.05 13:08
Оценка:
Кажется заработало!
Причина в следующем:
LIB-файлы указываются не в "Add module to assembly", а в "Additional Dependicies"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.