why VC++ 6.0 DLL works with VC# and the one in Visual Studio 2005 doesnt?
-
One of the things that I have been working on for the past couple of days is creating a DLL in VC++ 6.0 and using it in VC#, and it works..... but when I create the dll in VC++ Visual Studio 2005, it doesnt work with the VC# code.(in Visual Studio 2005)...... I get the error message that it could not find the fntest () function in TestDll.dll. Let me be more specific about how I created the DLL.....( and I followed the same steps for VC++ 6.0 and VC++ 2005). After following the steps in the link http://www.icynorth.com/development/createdlltutorial.html(I created a project that exports some symbols instead of a simple dll)I created a .def file, specified the test function as EXPORT. Then I went to build->configuration manager. and changed the configuration from debug to release. I then built the project, got the dll and copied it to the folder C:\WINDOWS\system32. Then I used PInvoke in VC# code and it worked fine for a VC++ 6.0 dll but not for a Visual Studio 2005 dll in VC++. I have a code ( written by someone else) in Visual Studio 2005. It has a lot of libs etc. specific to .NET, so I have to convert this code to a dll and then use it in my VC# program. I am desperately waiting for a response. Thanks,
-
One of the things that I have been working on for the past couple of days is creating a DLL in VC++ 6.0 and using it in VC#, and it works..... but when I create the dll in VC++ Visual Studio 2005, it doesnt work with the VC# code.(in Visual Studio 2005)...... I get the error message that it could not find the fntest () function in TestDll.dll. Let me be more specific about how I created the DLL.....( and I followed the same steps for VC++ 6.0 and VC++ 2005). After following the steps in the link http://www.icynorth.com/development/createdlltutorial.html(I created a project that exports some symbols instead of a simple dll)I created a .def file, specified the test function as EXPORT. Then I went to build->configuration manager. and changed the configuration from debug to release. I then built the project, got the dll and copied it to the folder C:\WINDOWS\system32. Then I used PInvoke in VC# code and it worked fine for a VC++ 6.0 dll but not for a Visual Studio 2005 dll in VC++. I have a code ( written by someone else) in Visual Studio 2005. It has a lot of libs etc. specific to .NET, so I have to convert this code to a dll and then use it in my VC# program. I am desperately waiting for a response. Thanks,
If you update your VC6 project to 2005, does it still work ?
saania khan wrote:
I have a code ( written by someone else) in Visual Studio 2005. It has a lot of libs etc. specific to .NET, so I have to convert this code to a dll and then use it in my VC# program.
If it's specific to .NET then it's managed code, which means you should be building a managed dll ( in fact, you have to ) and you won't p/invoke that, you'll just import it.
Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog