The C# equivalent of C++ (void *) is IntPtr. IntPtr represents an "opaque" pointer to something in unmanaged memory (a memory address or handle).
At 12:29 PM 7/20/2006, Eddie Lascu wrote >Thank you, Roy. I have purchased the electronic version from Apress web site >(got it cheaper too) and got reading within 5 minutes. You gotta love the >Internet age. >Actually Chapter 4 is dedicated to C++ Interop which is the new name for IJW >(It-Just-Works). Reading I saw that IJW is good only if your Managed code is >C++ and only if you have the source for the unmanaged code. >Since I only have a dll, an accompanying lib and some header files, I wasn't >sure IJW will work (any comments here?), so I switched back to P/Invoke and >eventually I got it working. Well, at least the first call into the API >library returned successfully and created the object I needed. > >One observation: >- some of the methods in the native library return pointer to objects, but >the interface specifies them as (void *). When I tried C# and declared the >return type as object I got some marshalling exceptions (P/Invoke not >supporting variant return types). Once I switched to C++ and declared the >return type as (void *) everything worked fine. How would you deal with >that? > >Anyway, thanks for your suggestion. This book sure looks like an important >resource for anyone having to deal with interop issues. > >Cheers, >Eddie > >-----Original Message----- >From: Discussion of advanced .NET topics. >[mailto:[EMAIL PROTECTED] Behalf Of Roy Green >Sent: Wednesday, July 19, 2006 6:51 PM >To: [email protected] >Subject: Re: [ADVANCED-DOTNET] Linking an unmanaged C++ .dll in a VS.NET >2005 Managed C++ Class Library > > >Hi, > I've had to link to a lot of VC6 libraries lately, and the >following book has been >extremely useful: > >http://www.apress.com/book/bookDisplay.html?bID=10116 > >Chapter 4 is what you want. > >On 7/19/06, Eddie Lascu <[EMAIL PROTECTED]> wrote: >> Hello Experts, >> >> I have this third party .dll that was developed in Visual C++ 6.0. I have >> the ".lib" file and also some header files to include in my project. I am >> trying to wrap it into a Managed C++ Class Library developed in Visual >> Studio.NET 2005. I picked Managed C++ because I read the interoperation is >> easier from C++ than C# or VB.NET. >> Anyway, I am getting linkage errors for virtually every call into the >> library (LNK2028 paired with LNK2019). I have linked the ".lib" file and >> made sure the ".dll" file is found in the local folder, but I still get >> these linkage errors. >> This library is quite old and I had to make some changes in the header >files >> to make them compile. I read about the myriad of compilation/linkage >> directives and I am at loss with them. >> >> Are there any web recourses to guide me through all the steps that need to >> be followed to get this to compile and link? >> Any suggestion will be appreciated, >> Eddie J. Merrill / Analytical Software Corp =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
