-2

In order to maintain and occasionally modify some vb6 com plus components, I decided to move everything from an old and unreliable 32 bit system to a new 64 bts system. I have installed Visual Studio 6 (vb6 and vc++ features) on a 64 bts windows 10 home.

I followed the instructions on

https://www.codeproject.com/Articles/1191047/%2FArticles%2F1191047%2FInstall-Visual-Studio-on-Windows

and the installation was completed successfully.

I activated iis and classic ASP feature on windows 10.

The problem is that when I attempt to create a com plus component the “Microsoft Active Server Pages Object Library” reference does not exists under the project / references in visual basic.

I searched the web and I found some old links showing that some people had such issue but I could never find a solution to the mentioned problem.

Could someone tell me please why the “Microsoft Active Server Pages Object Library” does not exists in visual basic 6 project / references and how could I resolve this issue?

Thank you in advance,

StayOnTarget
  • 11,743
  • 10
  • 52
  • 81
Dave123
  • 49
  • 2
  • 10
  • Please give more details about the steps you took when you said: "The problem is that when I attempt to create a com plus component..." How are you "attempting" to create a "COM+ component", specifically? – Jazimov Jan 02 '19 at 19:04
  • Hi: I create vb6 activeX dll project. then on top menu I click project tab / references in order to see the list of references to create a reference to Com+ Service Type Library and to the Microsoft Active Server Pages Library. While the reference to Com+ Service Type Library exists in the list of references and I can choose it, I cannot see and I cannot choose a reference to Microsft Active Server Pages Object Library because the library does not exist in the list of references. Why the “Microsft Active Server Pages Object Library” does not exists? And how could I resolve this problem? – Dave123 Jan 02 '19 at 21:27
  • Possible duplicate of [upgrade from 32 bit vb project to 64 bit](https://stackoverflow.com/q/47525614/692942) – user692942 Jan 03 '19 at 06:32
  • Possible duplicate of [Will a Visual Basic 6 program run on a 64-bit machine?](https://stackoverflow.com/q/6331432/692942) – user692942 Jan 03 '19 at 06:34

1 Answers1

2

Please try to browse for the Microsoft Active Server Pages Object Library using the References Browse... button. The default location for the library is:

C:\windows\system32\inetsrv\asp.dll

enter image description here

user692942
  • 16,398
  • 7
  • 76
  • 175
Jazimov
  • 12,626
  • 9
  • 52
  • 59
  • The reference that you are suggesting is exactly the reference that I said does not exist in my vb6 project on 64 bits system. That is the reference that I am missing and I don't know how to resolve it. The path C:\windows\system32\inetsrv.asp.dll which you wrote does not exist. If you meant C:\windows\system32\inetsrv\asp.dll it exists on my computer but as I said the reference does not exists. – Dave123 Jan 03 '19 at 00:47
  • So thank you for letting me to know that the reference was what I was supposed to browse manually to be added to the list. I never had to add a reference manually on my previous system. – Dave123 Jan 03 '19 at 00:53
  • I am happy that I got access to the Microsoft Active Server Pages Library. Now when I click the file tab / make projectName.dll on top menu of my vb6 project I get the error msg: Cannot access the system registry. Could someone tell me why I cannot make my project's dll? Thank you – Dave123 Jan 03 '19 at 01:16
  • You should accept the answer and make a new question. Otherwise, many questions would lack scope and people who help never would be properly awarded because some issues, once solved, allow other issues to surface. – Jazimov Jan 03 '19 at 01:19
  • My answer covered the missing reference. I gave the path and explained how to add the missing reference, which the OP admitted he never had to do before and that it did in fact solve the problem he originally asked for help about. – Jazimov Jan 03 '19 at 02:08
  • @Lankymart: Not sure what stake you have in suggesting that I didn't help the OP--I think that's for the OP to decide. He already said that I had helped--he missed the Browse feature of the references dialog. Meanwhile, just FYI: All references in VB6 will be 32-bit references because VB6 doesn't support 64-bit DLLs as referenced assemblies. – Jazimov Jan 03 '19 at 02:18
  • And thanks a lot to Jazimov who let me know about adding a reference to the library by using the path he offered. And despite the error MSG: Cannot Access System Registry when making the dll, the dll was made, I could create a package my testProj.testClass and install the dll by running setup.asp in the package. But a different problem that occurs is that in asp server.createObject("testProj.testClass") throws "Object not found" error. Should I create a new question or someone could possibly tell me why I get the "Object not found" error? Thanks – Dave123 Jan 03 '19 at 02:23
  • You should accept the answer and make a new question. Otherwise, many questions would lack scope and people who help never would be properly awarded because some issues, once solved, allow other issues to surface. – Jazimov Jan 03 '19 at 02:24
  • @Jazimov The OP is running 64 bit OS so the default registry will be 64 bit not 32 bit which is why he couldn’t find the library which exist under `SysWow64` not `System32` on 64 bit OSs. You make no mention if that. – user692942 Jan 03 '19 at 06:28
  • @Dave123 again it's the 64 vs 32 bit problem, see [Error ASP 0177: 8007007e Server.CreateObject fails for COM DLL](//stackoverflow.com/a/35985827) for a detailed explanation of how to diagnose and resolve the issue. – user692942 Jan 03 '19 at 08:05
  • @Lankymart: Read OP's comment: He said very clearly that the DLL was found in the System32 folder.I'm beginning to think you're just a bully here. You say "Again, it's the 64 vs. 32 bit problem", but the original problem wasn't a 64-bit issue--it was a 32-bit issue. I also run VB6 on Windows 10 64-bit so I am speaking from experience. I have the same system32 folder containing the same 32-bit asp.dll and VB6 is able to reference and use that library. – Jazimov Jan 03 '19 at 08:13
  • @Jazimov sorry you have lost me, on a 64 bit system all the 64 bit DLLs are stored in `System32` and the 32 bit ones are in `SysWow64`, the OP quite clearly said they are using a 64 bit operating system. Maybe VB6 is the exception to the rule as it will pre-date installation of 64 bit OS so it may still install itself to the `System32` folder even though it is a 32 bit DLL. I'm not trying to bully you just didn't feel the answer (but in reality the question) is clear enough. As for the ASP 64 vs 32 bit problem I can definitely relate to that and have wrote about it extensively in the past. – user692942 Jan 03 '19 at 08:20
  • @Jazimov reading through [this answer](https://stackoverflow.com/a/6331551/692942) would suggest that VB6 does install itself to the [Windows-on-Windows 64 (WoW64) subsystem](https://en.wikipedia.org/wiki/WoW64) on a 64 bit machine which means the reference libraries will come from `%systemroot%\syswow64` not `%systemroot%\system32`. – user692942 Jan 03 '19 at 08:27
  • @Lankymart: That's not where the DLL in question IS on my system or on the OP's system. You can point to as many sites/links as you want--on my working 64-bit Windows 10 system, VB6 DLLs are in System32. – Jazimov Jan 03 '19 at 08:33
  • @Jazimov Like I said early then VB6 must be the exception to the rule. To be honest the question isn't clear enough which doesn't help the answer. – user692942 Jan 03 '19 at 08:39
  • Yes, I think so. Also, the OP should accept my answer. He wrote: "If you meant C:\windows\system32\inetsrv\asp.dll it exists on my computer but as I said the reference does not exists." It's not that I "meant" "C:\windows\system32\inetsrv\asp.dll", it's what I actually wrote. He followed up with: "...thank you for letting me to know that the reference was what I was supposed to browse manually..." and later "[I'm] happy that I got access to the Microsoft Active Server Pages Library". If he has any other issues, those should asked in a new question that could reference this one, if needed. – Jazimov Jan 03 '19 at 08:47
  • @Jazimov right so I understand the issue now. The OP wanted to use the ASP library which on a 64 bit OS is going to be 64 bit and located in the `System32` folder but VB6 doesn't support 64 bit so it runs in the WoW64 subsystem. Because of this the reference dialog will show 32 bit references not 64 bit ones which is why the ASP Object Library has to be located using browse manually. – user692942 Jan 03 '19 at 14:06
  • 1
    @Lankymart: I would say that's a very accurate summary. In turn, I would agree with you that there are going to be downstream 32-bit/64-bit dependency issues that also will need to be resolved. I don't think anyone could fix the OP's entire prospect of downstream issues with a single answer. – Jazimov Jan 03 '19 at 16:11
  • I definitely accept Jazimov's answer for the library refrence problem. I will start a new question for "Cannot access the registry" issue when trying to make the dll.. – Dave123 Jan 03 '19 at 18:16