我写了一个c#调用C++的P/INVOKE程序,之前所有都没问题,但是当我调用了一个第三方库以后,C++里面所有的函数都调用不了了。
程序的接口开始是这样的:
extern "C" __declspec(dllexport) void BuildModel(NSBuilder* builder)
{
builder->BuildModel();
ND::CProj* Model = builder->GetModel();
CreateProj(Model);
}
CreateProj 是第三方库提供的方法,定义是这样的:
extern "C" void __declspec( dllimport ) CreateProj(ND::CProj *pDataProj)
在加入这个第三方库提供的方法后,这个dll中的所有函数都不能正常访问了,异常如下:
未经处理的异常: System.DllNotFoundException: 无法加载 DLL“NSFrameworkC.dll”: 动态链接库(DLL)初始化例程失败。 (异常来 自 HRESULT:0x8007045A)。
但是当我不定义这个__declspec( dllexport )时:
void BuildModel(NSBuilder* builder)
dll又能正常访问了,但是这个CreateProj 是一定要调用的,所以我该如何处理这个情况?