我有一个本机C ++ DLL,我想使用C ++ \ CLI混合模式功能将其转换为托管DLL。我写了一些代码。 DLL的编译很好,但利用DLL的可执行文件的编译失败了
错误C3767候选功能无法访问
相对于我要导出的DLL函数。代码的结构如下
// -- DLL Header managedTest.h
namespace managedTest
{
public ref class managedDLL
{
public:
// -- Native function to export
void SomeFunction(int a, USER-DEFINED TYPE &b);
}
}
// -------------------------------------------------------------------------
// -- DLL cpp file managedTest.cpp
#include "managedTest.h"
void managedTest::managedDLL::SomeFunction(int a, USER-DEFINED TYPE &b)
{
do something;
}
//--------------------------------------------------------------------------
// -- Implementation file that recalls the DLL
using namespace managedTest;
int main(void)
{
managedDLL^ test = gcnew managedDLL;
test->SomeFunction(a, b); // -- Here I have the error!
}
我已经阅读了有关在托管非托管边界上调用函数的内容,但我仍然找不到解决此问题的方法。我几乎可以肯定这个问题与公开USER-DEFINED TYPE有关。
有人可以帮我理解是什么问题吗? 提前谢谢。