C#で使用するために基本的なC++DLLを実行しようとしています。次のクラスが使用されます。
私のcppファイル
#include "stdafx.h"
#include "MathFuncsAssembly.h"
namespace MathFuncs
{
double MyMathFuncs::Add(double a, double b)
{
return a + b;
}
double MyMathFuncs::Subtract(double a, double b)
{
return a - b;
}
double MyMathFuncs::Multiply(double a, double b)
{
return a * b;
}
double MyMathFuncs::Divide(double a, double b)
{
if (b == 0)
{
throw gcnew DivideByZeroException("b cannot be zero!");
}
return a / b;
}
}
私のヘッダーファイル
using namespace System;
namespace MathFuncs
{
public ref class MyMathFuncs
{
public:
static double Add(double a, double b);
static double Subtract(double a, double b);
static double Multiply(double a, double b);
static double Divide(double a, double b);
};
}
ライブラリを呼び出しているC#アプリケーションで
[DllImport("MathFuncsAssembly.dll")]
public static extern double Add(double a, double b);
static void Main(string[] args)
{
Console.WriteLine(Add(10.0, 11.0));
Console.ReadLine();
}
(Add(10.0,11.0))部分で例外が発生します。次の例外がスローされます。誤った形式のプログラムをロードしようとしました。(HRESULTからの例外:0x8007000B)..アイデアはありますか?また、c#アプリケーションのビンに.dllファイルをコピーしました...
ありがとう!