[英]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.