Apr 12, 2010
Using VB.NET 2008 SP1 on Windows XP Pro SP3:
View 1 Replies
I am using an existing COM dll that works fine in VB6, on the same development machine. The VB6 app compiles and uses this dll without issue.
I start from scratch to design a new Windows Form application in VB.Net. Then when I try to add a reference to this dll, the reference is added to the references list but the path shows as <The system cannot find the reference specified>. If I select this reference in the list, the properties window shows a blank for both the reference name and the path. At the same time, a reference is added for VBA, and it shows the reference name (Interop.VBA) and path correctly.
I used dependencywalker to find the dependencies for this dll. It has 3: user32.dll, kernel32.dll, and msvbvm60.dll. So presumably I have all necessary dependent files.
I have tried un-registering, re-registering the dll. I have tried the command line switches for devenv.exe to reset settings and to launch in safe mode. I created a new user account to see if it was related.
I have tried picking the dll from the Add References, COM tab and also via the Browse tab to select the file directly. Same result all cases. I also tried putting the dll and msvbvm60.dll in my bin folder.
I don't understand how the reference name and path are missing in the properties window when the reference name is right there in the list and I select the path directly when I added it. There are no other instances of this dll registered.
I tried using tlbimp from the command prompt with verbose switch, I get the error:
System.Runtime.InteropServices.COMException - Error loading library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRAY)). I wish it would tell us what is missing.
It must be registered properly and all dependencies available for it to work in my VB6 app, Re-writing the dll is not currently an option.