いくつかのネイティブ C++ コードがあり、それを回避するためのラッパーを作成しました。クリエーター.h
#pragma once
#include "file.h"
#define EXPORT __declspec(dllexport)
class EXPORT creator{
public:
creator();
~creator();
bool function1(int);
bool startFunction1(char *in, char *cache, char *out, long, double);
};
wrapper.h
#pragma once
using namespace System;
namespace nativeWrapper
{
public ref class Wrapper{
public:
creator *c;
Wrapper();
~Wrapper();
bool wStartCreating(System::String ^_in, System:: ^_cache, System:: ^_out);
};
}
wrapper.cpp wStartCreating 関数に直行しましょう
bool Wrapper::wStartCreating(System::String ^_in, System:: ^_cache, System:: ^_out)
{
char *in = marshaling(_in);
char *out = marshaling(_out);
char *cache = marshaling(_cache);
return c->startFunction(in, cache, out, 0.0, 0.0);
}
C# コードで:
[DllImport("wrapper.dll")]
private static extern bool wStartCreating(String _in, String cache, String _out);
次に、wStartCreating(String, String, String) を呼び出したいのですが、呼び出しを試みるたびに dllnotfoundexception が発生します。参照を追加しようとしました (ちなみに、これは Visual Studio 2005 にあります)。ビルド イベントで、参照先のフォルダーに dll をコピーしました。この実行時エラーが発生する理由について、助けが必要です。ありがとう - トミー