Help with mshtml.dll

Mike

New member
Jun 27, 2006
6,777
116
0
51
On the firing line
For the love of....

I've spent most of the day trying to get this to work. I've installed the .dll in the application's folder. Even downloaded Visual Basic hoping that would do it. Now, I'm in the process of downloading Visual Studio Professional.

Anybody have any ideas how to get this damn .dll installed and recognized by Vista 64?

Please bear in mind I'm pretty retarded when working with the technical side of windows.
 


Anybody have any ideas how to get this damn .dll installed and recognized by Vista 64?

Maybe you're trying to use a 32 bit dll with a 64 bit program or vice versa?

Determine which the dll is, check to make sure the program is the same, then try dropping it into (for example) your System32 folder if it's not working from the application's directory, reboot, pray.

Also try running regsvr32 on it, doesn't hurt even if that dll doesn't need it.
 
Just to clarify, System32 is for 64 bit dlls, SysWoW64 is for 32 bit dlls.
Yes, I typed that right.

:conehead:
 
Okay, I just tried:

regsvr32 "C:\Program Files (x86)\Program\mshtml.dll"

and got this error:

The module "C:\Program Files (x86)\Program\mshtml.dll" was loaded but the entry-point DllRegisterServer was not found.

Make sure that "C:\Program Files (x86)\Program\mshtml.dll" is a valid DLL or OCX file and then try again.
What the heck does that mean in English?

/edit/ just found this in the link you provided:

Regsvr32.exe was unable to find the required entrypoint in the module specified in the command line. This can occur if the entrypoints are not properly exported from the module or if the module is not a .DLL or .OCX file.
So, now I need to figure out what an entrypoint is....

/more edit/

Looking through my System32 folder, the mshtml.dll is already there. Any reason why it's not working when a program calls it?
 
Sounds like while you may have the dll, you're missing a dependency that it requires. Kinda like loading a DLL made in Visual Basic without having the VB runtime files on your system.

Question... why do you even need mshtml.dll?
 
Sounds like while you may have the dll, you're missing a dependency that it requires. Kinda like loading a DLL made in Visual Basic without having the VB runtime files on your system.

Question... why do you even need mshtml.dll?

The program I am trying to use requires it for certain operations to function. I keep getting this error:

 
Okay, I just tried:

regsvr32 "C:\Program Files (x86)\Program\mshtml.dll"

and got this error:
Don't worry, it was just something to try. Apparently, regsvr32 isn't needed.


Looking through my System32 folder, the mshtml.dll is already there. Any reason why it's not working when a program calls it?

From the looks of it, you have a 32 bit program, so the mshtml.dll file in System32 won't do you any good. Check your SysWoW64 folder.

Is this a .Net program calling into mshtml.dll?
It could need the exact same dll version as the stubs were made against (or at least a closer match).
Contact your programmer and see which version he was using (and have him send it to you if possible).

Could also be a problem with another dependency that mshtml.dll has (like kblessinggr said).
 
I noticed the error said 'Or one of it's dependencies', did the application come with any kind of documentation as to what needs to be installed? Also a little googling suggest that its a component of .Net 2.0 ( or least thats where it gets a problem at times ).
 
The programmer sent me a mshtml.dll file to put in the application folder, which I did. Checking the SysWoW64 folder there is a mshtml.dll file there as well.

I believe it is a .net program as it requires the .Net framework.

Not sure about dependancy. Anyway to determine that?
 
The programmer sent me a mshtml.dll file to put in the application folder, which I did. Checking the SysWoW64 folder there is a mshtml.dll file there as well.
I assume you've tried it without the dll in the application folder at all?

I believe it is a .net program as it requires the .Net framework.
Definitely a .Net program then

Not sure about dependancy. Anyway to determine that?
Try turning on the assembly binding logging like the error message suggests and see what it says in the log file after you try running it again.



Could be some dll that mshtml depends upon is the wrong version for the mshtml version that your programmer gave you. Try to figure out which versions of IE and Windows your programmer is running, and see if those are the same as the yours. An IE version mismatch could cause some troubles...
 
Okay, can you load Internet Explorer? If you can, then mshtml.dll isn't the problem: that file is the Trident engine, which is the renderer for Internet Explorer. If you didn't have it, or it had some problem, IE wouldn't load.

You also definitely have the .NET Framework installed; the error you're getting comes out of the Common Language Runtime, so if it weren't there, you would get a different error.

This is an assembly binding error; it's actually looking for a file called Microsoft.mshtml.dll, the Microsoft HTML Object Library, which is a managed wrapper for mshtml.dll. It's not failing to find mshtml.dll (the Trident engine), it's failing to find a different DLL that serves to "translate" between .NET and Trident.

Microsoft.mshtml.dll is a managed assembly, which means you don't have to regsvr32 it or anything else; you just drop it into the application's directory.

So why is it that you have .NET installed, but can't find Microsoft.mshtml.dll? Because the app you're trying to run is, for some reason, doing a strong name load for 'Microsoft.mshtml, Version=7.0.3300.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' That's the version of Microsoft.mshtml.dll that came with .NET 1.1; you probably have .NET 2.0 or 3.5 installed. If the app is written right, this shouldn't be a problem -- 2.0 can normally run 1.1 apps -- but this one isn't.

So, short version:

The "right way" to fix this issue is to install .NET Framework 1.1. Yes, even though you have 2.0 installed already. They work just fine side-by-side and it won't break anything at all.

The "easy way" to fix it is to get a copy of Microsoft.mshtml.dll version 7.0.3300 off someone's computer that has .NET 1.1 installed, and copy it directly into the app's directory. No need to regsvr32 it or anything, it'll just work.
 
  • Like
Reactions: emp
So why is it that you have .NET installed, but can't find Microsoft.mshtml.dll? Because the app you're trying to run is, for some reason, doing a strong name load for 'Microsoft.mshtml, Version=7.0.3300.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' That's the version of Microsoft.mshtml.dll that came with .NET 1.1; you probably have .NET 2.0 or 3.5 installed. If the app is written right, this shouldn't be a problem -- 2.0 can normally run 1.1 apps -- but this one isn't.

finally someone who knows what they're talking about ;)

+rep
 
Darn...

startign the thread and seeing the screenshot, I thought I could impress everyone with my awesome .net knowledge.

And then that 68 post newb zorba comes along and steals my thunder!

I'LL GET YOU NEXT TIME, ZORBA!

::emp::
(+rep of course)
 
thanks for the help guys! What solved the problem was the programmer went back in and somehow made the connection in the software, then he pushed me the updated version. Works great now! Shit is way over my head.