C ++ неразрешенные символы - PullRequest
       38

C ++ неразрешенные символы

0 голосов
/ 11 ноября 2009

Я получаю неразрешенную ошибку символа при линковке в моем проекте. Я связываюсь с внешней библиотекой, и да, я правильно настроил конфигурацию, но при отладке выдает следующую ошибку для каждого класса во внешней библиотеке:

error LNK2001: unresolved external symbol __CAP_EXIT_Function

Proj использует ту же библиотеку времени выполнения, что и внешняя библиотека, и ссылается на отладочную версию библиотеки.

Какие-нибудь подсказки относительно того, куда пойти с этим?

Кстати, я использую VS2008

Спасибо

Ответы [ 3 ]

1 голос
/ 11 ноября 2009

Похоже, вы используете / callcap switch , но не определяете функции обратного вызова. Пожалуйста, смотрите предыдущую ссылку и реализуйте функции обратного вызова.

Для других ошибок компоновки библиотеки. Убедитесь, что вы указали файл .lib в разделе дополнительных включений свойств компоновщика?

Также, если у вас есть файл vcproj в том же решении, что и ваш проект, вы можете щелкнуть правой кнопкой мыши по вашему проекту и установить зависимость для другой библиотеки. Таким образом, вам не нужно указывать дополнительную библиотеку, как указано выше.

0 голосов
/ 11 ноября 2009

Является ли библиотека C lib? В этом случае вам нужен внешний "C" для функций в заголовке, может, чего не хватает?

, например

extern "C"
{
  void foo(); 
   ...
}

или

   extern "C" void foo();
0 голосов
/ 11 ноября 2009

Включаете ли вы все файлы заголовков, которые могут понадобиться? Вам все еще нужно добавить

#include "MyDll.h"

Даже после добавления ссылки на dll и добавления каталога, в котором он находится, к пути включаемых каталогов. Тогда вы можете использовать функции в DLL, как это.

MyDll::MyFunctions::Function();
...