.NET DLL Problem

I have a program that I created some years ago that uses a DLL to do some work with TIFFs. For that program I registered the DLL and was able to use it in the program. I simply accessed it in the code like this:

  //initialize the TIFF dll
  #If TargetWin32
    objPrint = New OLEObject("TIFFDLL50Vic.ClsTiffDLL50")

I could also add it to the project through Insert ActiveX Component References and look at the available interfaces.

I need to update this program to run in Windows 7. The company that created the DLL has a new .NET version available. I have purchased it, registered it with RegAsm.exe, and can add it with Insert ActiveX Component References. However, it does not show the available interfaces. If I use this code:

//initialize the TIFF dll #If TargetWin32 objPrint = New OLEObject("TiffDLL200.TiffDLL200") #Endif

I get an OLEException [&h819BB35C] in the compile saying “Invalid class string,” error number -2147221005. The “TiffDLL200.TiffDLL200” information appears to be the same reference as was used with previous DLL, but it does not work. I have a manual for the DLL with code references, but, as I cannot generate an OLEObject as I did before, I cannot get any further. I have seen some discussion of this on the forum, but it generally has references to C and some other things that are not in my knowledge set. How do I access this DLL?

Xojo cannot directly access .NET assemblies unless they were created as COM accessible.

There was forum discussion on this topic that I collected into a blog post, but it may not be much use for a 3rd party library that you did not create:


Yes, I saw Jim Cramer’s thread. You are correct that it does not really get me to where I need to be with this library. Thanks for the reply.