从c#管理dll,没有错误,但没有任何反应

时间:2016-09-01 20:25:34

标签: c# c++ dll interop

我在C ++中创建了一个dll(windows 10,64位dll,发布配置)

我只有一个功能。

extern "C"
{

    __declspec(dllexport) void ConnectX()
    {

        std::cout << "yes" << std::endl;

    }

}

当我创建一个新的c#项目时,使用:

从中调用一个函数
 [DllImport("XsensGrab.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern void ConnectX();

        static void Main(string[] args)
        {
            Thread threadConnect = new Thread(ConnectX);
            threadConnect.Start();
        }

它按预期工作。

当我将相同的代码添加到我为其创建的现有项目中并运行它时,没有任何反应。没有错误,但也没有连接。

两个C#项目都是发布/ ANY_CPU。

我看不出有什么区别。为什么这会在一个项目中工作,而不是另一个项目?我可以检查C#应用程序中的哪个设置以查找原因?

1 个答案:

答案 0 :(得分:-1)

我需要的是将构建设置/平台目标从任何CPU更改为x86,将dll更改为win32。