P/Invoke的dll不能正常加载

我写了一个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 是一定要调用的,所以我该如何处理这个情况?

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。

首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:编程语言、Java开发、python、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、作业代写、安装包资源发送或安装、软件使用指导等服务。

我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。