Хорошо, я пытаюсь создать C ++ DLL, которую затем могу вызвать и сослаться в приложении c #. Я уже сделал простую dll с использованием многочисленных руководств, однако, когда я пытаюсь сослаться на нее в приложении C #, я получаю ошибку
Невозможно загрузить DLL 'SDES.dll': указанный модуль не найден.
Код для программы следующий (потерпите меня, я собираюсь включить все файлы)
//These are the DLL Files.
#ifndef TestDLL_H
#define TestDLL_H
extern "C"
{
// Returns a + b
__declspec(dllexport) double Add(double a, double b);
// Returns a - b
__declspec(dllexport) double Subtract(double a, double b);
// Returns a * b
__declspec(dllexport) double Multiply(double a, double b);
// Returns a / b
// Throws DivideByZeroException if b is 0
__declspec(dllexport) double Divide(double a, double b);
}
#endif
//.cpp
#include "test.h"
#include <stdexcept>
using namespace std;
extern double __cdecl Add(double a, double b)
{
return a + b;
}
extern double __cdecl Subtract(double a, double b)
{
return a - b;
}
extern double __cdecl Multiply(double a, double b)
{
return a * b;
}
extern double __cdecl Divide(double a, double b)
{
if (b == 0)
{
throw new invalid_argument("b cannot be zero!");
}
return a / b;
}
//C# Program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
[DllImport("SDES.dll")]
public static extern double Add(double a, double b);
static void Main(string[] args)
{
Add(1, 2); //Error here...
}
}
}
У кого-нибудь есть идеи, что мне может не хватать в моей программе? Дайте мне знать, если я пропустил какой-то код или у вас есть вопросы.