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);
};

包装器.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