I'm trying include c++ library (DLL) in my c# project but every time I do that I get following error message in VS2012
A reference to 'C:\Users\HiepDang\Desktop\mydll.dll' could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component. When I'm trying add Com+ Component, I get following error message in window
One or more files do not contain components or type libraries. These files cannot be installed.
Error 80110425 occurred.
An unknown error occured. You should check all documentation for a solution. If no further information is available, please contract technical support
I'm following thread here and here but my problem not solved.
In C++, I can use dll like:
//Header extern "C" __declspec( dllimport ) int mymethod(const char *key, char *data, size_t buflen); //Code test const char* key = "test"; char* data = new char[1024]; int buflen = 1024; int result = mymethod(key,data, buflen); In C#, I use dll as:
//define dll [DllImport("mydll.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)] public static extern int mymethod([MarshalAs(UnmanagedType.LPTStr)]string key, [MarshalAs(UnmanagedType.LPTStr)]string data, uint buflen); //method test private static int testdll() { string key = "123456789"; string buf = string.Empty; mymethod(key, buf, 1024); return 0; } Can you tell me any solutions to solve it.
P.s: My English is not good. I'm sorry if something inconvenient
Edited: I explain the variable in method in dll. "key" as string input has 8-13 characters, mymethod will be encrypted to generate "buf". I need variable of "buf".
DllImport. Do not attempt to add a reference by right-clicking References and choosing Add. Just use your existingDllImportc# code