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
>
> ===================================
> This list is hosted by DevelopMentor(r)  http://www.develop.com
>
> View archives and manage your subscription(s) at
http://discuss.develop.com
>

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to