C# 在C++应用中导入和使用C++ DLL函数 我正在开发一个应用程序,它使用硬件提供者提供的C++ DLL与一些硬件通信。我也有这个DLL的头文件,但没有源文件。在我的C应用程序中,我尝试导入并调用DLL函数,如下所示: public class MyClass { [DllImport("CaGe.dll")] public static extern long someLibraryFunction(); public void callLibFunction() { Console.WriteLine("function call: " + someLibraryFunction()); } }

C# 在C++应用中导入和使用C++ DLL函数 我正在开发一个应用程序,它使用硬件提供者提供的C++ DLL与一些硬件通信。我也有这个DLL的头文件,但没有源文件。在我的C应用程序中,我尝试导入并调用DLL函数,如下所示: public class MyClass { [DllImport("CaGe.dll")] public static extern long someLibraryFunction(); public void callLibFunction() { Console.WriteLine("function call: " + someLibraryFunction()); } },c#,c++,dll,dllimport,C#,C++,Dll,Dllimport,library.dll文件与MyClass.cs文件以及其他项目文件位于同一文件夹中。然而,当我启动调试会话时,我首先从系统接收到一个对话框窗口,说:CAGE InitDll:Erro on load library CdbClientInit,然后在该窗口上单击OK,在调用库函数occours的行上出现一个未处理的异常 异常显示:System.DllNotFoundException:HRESULT:0x8007045A的异常 我在互联网上发现,这可能是由于CaGe.DLL所需的DLL丢失造成

library.dll文件与MyClass.cs文件以及其他项目文件位于同一文件夹中。然而,当我启动调试会话时,我首先从系统接收到一个对话框窗口,说:CAGE InitDll:Erro on load library CdbClientInit,然后在该窗口上单击OK,在调用库函数occours的行上出现一个未处理的异常

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

我在互联网上发现,这可能是由于CaGe.DLL所需的DLL丢失造成的,因此我尝试通过依赖项遍历程序来放置DLL,但结果对我来说有点混乱。在CAGE.DLL下有WS32_32.DLL、VERSION.DLL、KERNEL.DLL和USER32.DLL选项卡,我发现我需要的库在USER32.DLL选项卡下的某些地方,但如果是缺少DLL导致了此问题,我无法识别它们中的任何一个


<>任何建议都会得到很好的理解:

< P>在C中使用C++函数有更多帮助,请在URL

下面检查
问题更可能是程序找不到CaGe.dll。您说过它与源文件位于同一目录中,但默认情况下,可执行文件不是在该目录中生成的。尝试将.dll放入程序可执行文件所在的Bin\Debug或Bin\Release中。是的,这就解决了问题,谢谢:这并不能真正回答问题。提供一个指向非站点资源的链接,而不提供更多内容,不会增加堆栈溢出。请不要那样做。请花点时间把精华包括在这里。如果你想包括进一步阅读的链接,那也很好。