C ++ \ CLI混合模式DLL

时间:2015-11-24 20:07:21

标签: .net c++-cli mixed-mode

我有一个本机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有关。

有人可以帮我理解是什么问题吗? 提前谢谢。

0 个答案:

没有答案