Ошибка компоновщика C ++ (Unresolved External) при подключении к / clr DLL

У меня есть DLL с включенной опцией / clr. У меня есть следующее объявление в моей DLL:

int __declspec(dllexport) __cdecl  test();

Также у меня есть консоль с параметром / clr ON. И иметь следующее объявление в моем файле main.cpp:

int __declspec(dllimport) __cdecl  test();

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

Мне удалось скомпилировать, вручную добавив ссылку на файл lib, сгенерированный компилятором. Но тогда я не могу попасть в точки останова внутри функций DLL (он говорит, что исходный код отличается от оригинальной версии или символы не были загружены …)

Кто-нибудь может мне помочь?

0

Решение

Если ваша DLL не использует управляемые функции, просто удалите /clr вариант из этого проекта и перекомпилировать. Если вы все еще получаете ошибки, это, вероятно, связано со ссылками в консольном приложении.

Если в DLL используется управляемая функциональность, вам нужно сделать следующее:

DLL:

#include "stdafx.h"
namespace Test1
{
public ref class Test2
{
public:
static int test()
{
return 1;
}
};
}

Консольное приложение:

#include <iostream>

int main(int argc, char* argv[])
{
int i = Test1::Test2::test();
std::cout << i << std::endl;
return 0;

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector