解决方案 »

  1.   

    有可能是你的c++的dll是32位,而你的C#程序是64位的
      

  2.   


    extern "C"
    {
    __declspec(dllexport) void Cmyplus(const double y[16384], double s[16384]);
    }
    Cmyplus经过name mangling之后,就不是Cmyplus了,C++编译器将之转换成类似Cmyplusd1d1样子的。C++通过这种技术实现函数重载。加上extern "C"后,告诉编译器,不要对Cmyplus进行name mangling。或者你查找Cmyplus经过name mangling后,函数名称变成了什么,然后在C#中调用那个函数。