0

いくつかのネイティブ 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 をコピーしました。この実行時エラーが発生する理由について、助けが必要です。ありがとう - トミー

4

0 に答える 0