Reputation: 223
I am writing a wrapper for my native C++ methods in C++/CLI which will expose them to C#. Now I am using Visual Studio 2008. Can any one tell me what type of project I need to create so that my wrapper will be exposed to C#. I see in Visual Studio 2008 there are different types of projects under Visual C++--->CLR---->
class library,
CLR Empty Project,
Windows form control library,
CLR Console Application,
Windows Forms Application,
Windows Service
Which one should I use?
Upvotes: 5
Views: 4151
Reputation: 14467
You have to create the project of type Class Library. The most important thing is to specify the "Common Language Runtime Support" option (set to "Common Language Runtime Support (/clr)") in the Project Properties -> Configuration Properties -> General
This will allow you to use the
#pragma managed
... use your native stuff here
#pragma unmanaged
pragmas and link with the native .lib files.
See this link for subtle details
There is a catch (not mentioned in this article) for 64-bit builds. The "Linker->Input->Force Symbol References" must be set to "_DllMainCRTStartup" for 64-bit and to "_DllMainCRTStartup@12" for 32-bit.
Upvotes: 7