all groups > dotnet interop > september 2005 >
You're in the

dotnet interop

group:

dll & VS2005 & C#



dll & VS2005 & C# rob
9/21/2005 11:52:32 PM
dotnet interop: I need some help with the following:

Assume I have a dll that has a function MyStrcpy that does exactly the
same as strcpy. The dll was written in VS 6 C++. The project would look
like this something like:

BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID
lpReserved){
switch (ul_reason_for_call) {
....
}
return TRUE;
}
PLUGINDLL_API char *MyStrcpy(char *dst, const char *src) {
return strcpy(dst, src);
}

Now I want to use this in my windows project using VS 2005 and C#. Here
is what I would do:

IntPtr handle = LoadLibrary(pluginName);
IntPtr procaddr = (IntPtr)GetProcAddress(handle, "MyStrcpy");
MyDelegate delgt =
(MyDelegate)Marshal.GetDelegateForFunctionPointer(procaddr,
typeof(MyDelegate));

The question is how should the delegate look like and how do I use the
function after that. If you could give me some example that would be
great.

Rob
Re: dll & VS2005 & C# Mattias Sjögren
9/22/2005 11:21:39 PM
[quoted text, click to view]

Probably like this

delegate IntPtr MyDelegate(StringBuilder dst, string src);


Mattias

--
Mattias Sjögren [MVP] mattias @ mvps.org
http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
AddThis Social Bookmark Button