C# неуправляемый экспорт / импорт DLL в C++
0 голосовать против фаворита
У меня есть следующий код в C#: (я использовал шаблон R. Giesecke Dllexport для создания неуправляемой библиотеки Dll с C#... он создает мне файл ".lib" и ".dll" с (управляемым) C# )
//UnmanagedExports.cs using System; using System.Collections.Generic; using System.Text; using RGiesecke.DllExport; namespace AddDll { class MyAddDll { [DllExport("Add", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)] public static double Add(double a, double b) { return a + b; } } }
Dll-код C# работает хорошо без ошибок и создает мне Addll. lib и AddDll.dll файл.
Я хотел бы импортировать эту библиотеку Dll в C++:
//CallAdd.h #pragma once #define DllImport __declspec(dllimport) namespace AddDll { class MyAddDll { public: static DllImport double Add(double a, double b); }; }
// CallAdd.cpp #include "stdafx.h" #include"CallAdd.h" #include <iostream> using namespace std; int main() { double a = 4.5; double b = 5.5; cout << "a + b = " << AddDll::MyAddDll::Add(a, b) << endl; system("pause"); return 0; }
У меня есть следующие ошибки:
Warning 1 Platform is AnyCpu, creating binaries for each CPU platform in a separate subfolder...<br /> <br /> Error 2 error LNK2019: unresolved external symbol "__declspec(dllimport) public: static double __cdecl AddDll::MyAddDll::Add(double,double)" (__imp_?Add@MyAddDll@AddDll@@SANNN@Z) referenced in function _main<br /> <br /> Error 3 error LNK1120: 1 unresolved externals
В Visual Studio я сделал следующее В разделе свойства консольного приложения C++ :
- В общих свойствах - & gt; рамки и ссылки. Добавьте ссылку на проект Addll.
Свойства - > конфигурация; Компоновщик ‐&ГТ; вход. Дополнительные зависимости Addll.lib
- В свойствах конфигурации - & gt; Компоновщик - & gt; Общие сведения. Дополнительные библиотечные каталоги, добавить
каталог, в котором Addll. lib и AddDll.dll расположены
Может ли кто-нибудь помочь мне устранить эти ошибки?
Заранее спасибо!!
Daniele Rota Nodari
Привет.
Вы решили этот вопрос?