繁体   English   中英

在C#应用程序中导入和使用C ++ DLL函数

[英]Import and use C++ DLL functions in C# application

我正在开发一个使用硬件提供程序提供的C ++ DLL与某些硬件进行通信的应用程序。 我也有此DLL的头文件,但没有源文件。 在我的C#应用​​程序中,我试图导入和调用DLL的函数,如下所示:

public class MyClass
{
    [DllImport("CaGe.dll")]
    public static extern long someLibraryFunction();

    public void callLibFunction()
    {
        Console.WriteLine("function call: " + someLibraryFunction());
    }
}

library.dll文件与MyClass.cs文件位于同一文件夹中,并且与其他项目文件位于同一文件夹中。 但是,当我开始调试会话时,我首先从系统收到一个对话框窗口:CAGE InitDll:加载库“ CdbClientInit”上的Erro,然后单击OK,在调用库函数的那一行中出现了未停止的异常。

异常显示:System.DllNotFoundException:HRESULT的异常:0x8007045A

我在互联网上发现这可能是由CaGe.dll所需的缺少DLL引起的,因此我尝试将DLL通过Dependency Walker进行放置,但结果令我有些困惑。 在CAGE.DLL下有WS32_32.DLL,VERSION.DLL,KERNEL.DLL和USER32.DLL选项卡,我怀疑我需要的库位于USER32.DLL选项卡下,但我无法识别其中的任何一个(如果缺少的DLL是导致此问题的原因)。

任何建议将不胜感激:)

有关在C#中使用C ++函数的更多帮助,请检查以下URL

http://www.codeproject.com/Questions/107152/Using-aC-dll-in-aC-application

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM