Import and use C++ DLL functions in C# application

0

I am developing an application that communicates with some hardware using the C++ DLL provided by the hardware provider. I also have a header file for this DLL, but no source file. In my C# application, I'm trying to import and call the DLL's functions like this:

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

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

The library.dll file is located in the same folder as the MyClass.cs file and also the rest of the project files. When I start the debugging session however, I first receive a dialog window from system saying: CAGE InitDll: Erro on load library "CdbClientInit" and after I click OK on that, an unhalted exception on the line where I call the library function occours.

The exception says: System.DllNotFoundException: Exception from HRESULT: 0x8007045A

I found on the internet that this may be caused by a missing DLL that the CaGe.dll needs, so I tried to put the DLL through the Dependency Walker, but the results are a little bit confusing for me. Under the CAGE.DLL there are WS32_32.DLL, VERSION.DLL, KERNEL.DLL and USER32.DLL tabs, I susspect that the libraries I need are somwhere under the USER32.DLL tab, but I don't recognize any of them (if a missing DLL is what is causing this problem).

Any advice would be much appretiated :)

c#
c++
dll
dllimport

1 Answer

-2

More help to use C++ function in C# please check below URL

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

answered on Stack Overflow Nov 6, 2014 by Kapil Ghormode

User contributions licensed under CC BY-SA 3.0