Installing Meta Trader 5 on Windows 7 64 bit - page 2

 

Hi,

I have the same identical error, I have Windows 7 Home Premium 64, but my operative system have not problems, I never had problem with mt4 but I can't install mt5 because the error about ole32.dll. I think it is a mt5 bug.

Have you any suggest?

Thanks


Regards

 

I'm having the same problem, tried several fixes, sfc works fine, and win7 is a fresh install.  MT4 running fine also.

 

What I am understanding from microsoft is some error in a file associationi in mt5, I find the dll in my system32 folder,

but for some reason mt5 isn't looking there for it, what parameters can we edit to cause it to see the ole32.dll please ?

 

why is terminal 64 looking for a 32 bit dll anyway ?  

 

I've coded in Win32 before and understand a few of the API internals. The use of ole32.dll means that terminal64.exe is probably a COM application or uses COM objects, the thing is that i have little experience with COM programs but i'll try to help with a little analysis.

I did an imports dump for a working version of terminal64.exe (build 712) and these are all symbols imported from ole32.dll:

    CoFreeUnusedLibraries  ord:0 rva2iat: 011FD750
    OleUninitialize  ord:0 rva2iat: 011FD758
    ReleaseStgMedium  ord:0 rva2iat: 011FD760
    OleGetClipboard  ord:0 rva2iat: 011FD768
    CoTaskMemFree  ord:0 rva2iat: 011FD770
    RevokeDragDrop  ord:0 rva2iat: 011FD778
    CoLockObjectExternal  ord:0 rva2iat: 011FD780
    RegisterDragDrop  ord:0 rva2iat: 011FD788
    StringFromGUID2  ord:0 rva2iat: 011FD790
    CoCreateGuid  ord:0 rva2iat: 011FD798
    CoInitializeEx  ord:0 rva2iat: 011FD7A0
    CoCreateInstance  ord:0 rva2iat: 011FD7A8
    CoUninitialize  ord:0 rva2iat: 011FD7B0
    CreateILockBytesOnHGlobal  ord:0 rva2iat: 011FD7B8
    StgCreateDocfileOnILockBytes  ord:0 rva2iat: 011FD7C0
    StgOpenStorageOnILockBytes  ord:0 rva2iat: 011FD7C8
    CoRegisterMessageFilter  ord:0 rva2iat: 011FD7D0
    CoRevokeClassObject  ord:0 rva2iat: 011FD7D8
    CoGetClassObject  ord:0 rva2iat: 011FD7E0
    CreateStreamOnHGlobal  ord:0 rva2iat: 011FD7E8
    OleDestroyMenuDescriptor  ord:0 rva2iat: 011FD7F0
    OleCreateMenuDescriptor  ord:0 rva2iat: 011FD7F8
    IsAccelerator  ord:0 rva2iat: 011FD800
    OleTranslateAccelerator  ord:0 rva2iat: 011FD808
    OleDuplicateData  ord:0 rva2iat: 011FD810
    CoTaskMemAlloc  ord:0 rva2iat: 011FD818
    CoDisconnectObject  ord:0 rva2iat: 011FD820
    DoDragDrop  ord:0 rva2iat: 011FD828
    OleFlushClipboard  ord:0 rva2iat: 011FD830
    OleIsCurrentClipboard  ord:0 rva2iat: 011FD838
    CLSIDFromString  ord:0 rva2iat: 011FD840
    CLSIDFromProgID  ord:0 rva2iat: 011FD848
    OleInitialize  ord:0 rva2iat: 011FD850

Your ole32.dll should contain all of these exports or else it is corrupt or is an old version installed by another application but i really doubt it. There're many ways and applications you could use for getting a list of exported symbols from ole32.dll, but if you don't understand anything that you're doing then i recommend using Stud_PE (wich is what i used for getting the table above): http://www.cgsoftlabs.ro/studpe.html

What i don't understand is if terminal64.exe is not finding the entry point of the dll itself or for a specific symbol. It would be very helpful for debugging if the message box could display the symbol it is trying to load.

I believe that terminal64.exe is dinamically loading ole32.dll and this gives a chance that it's not finding it. Make sure that the file is in there (Windows\System32). Also the dll may be unregistered but it would be very unlikely because OLE is a part of the core foundation of Windows files. COM files (and thus OLE) need to be registered in order to use the objects inside them (read the below suggestions for registering).

My MT5 environment is working fine so i can't reproduce the error but i would try doing the following:

1) Re-register ole32.dll: Go to your Windows\System32 folder and locate ole32.dll, right click and copy, then within the same folder locate a file called "regsvr32.exe", right click to it and paste. You'll see a command prompt or you'll receive a simple message box, in that prompt or message box is the output for the registration of ole32.dll but lets not focus on that, if it works it works if it doesn't then we'll try another thing. After registering the dll try running the terminal.

2) Hijack ole32.dll: By default Win32/Win64 programs search for dlls in the executable's path first and if it doesn't find the dll then it looks in System32. So, we'll drop a working copy of ole32.dll in the MT5 folder and see if that works.

I'm providing my own file from Windows 7 Ultimate x64:

http://speedy.sh/WpPtm/ole32.dll
ole32.dll

MD5: 6C60B5ACA7442EFB794082CDACFC001C
Version: 6.1.7601.17514
English Locale.

Download it and move it to your MT5 folder along with terminal64.exe, then try running the terminal WITHOUT registering this new dll (i don't know if by registering this dll it will break registration of the original file, try if you want at your own risk but don't forget to register again the original file in case it doesn't work). Try copying your own original ole32.dll if mine doesn't work.

3) Virtualization: Setup a Windows based virtual machine from scratch and make a clean install of MT5. That will work for sure.

That's all i can do for you now, no guarantees.

 
TripleHeinz:

I've coded in Win32 before and understand a few of the API internals. The use of ole32.dll means that terminal64.exe is probably a COM application or uses COM objects, the thing is that i have little experience with COM programs but i'll try to help with a little analysis.

I did an imports dump for a working version of terminal64.exe (build 712) and these are all symbols imported from ole32.dll:

Your ole32.dll should contain all of these exports or else it is corrupt or is an old version installed by another application but i really doubt it. There're many ways and applications you could use for getting a list of exported symbols from ole32.dll, but if you don't understand anything that you're doing then i recommend using Stud_PE (wich is what i used for getting the table above): http://www.cgsoftlabs.ro/studpe.html

What i don't understand is if terminal64.exe is not finding the entry point of the dll itself or for a specific symbol. It would be very helpful for debugging if the message box could display the symbol it is trying to load.

I believe that terminal64.exe is dinamically loading ole32.dll and this gives a chance that it's not finding it. Make sure that the file is in there (Windows\System32). Also the dll may be unregistered but it would be very unlikely because OLE is a part of the core foundation of Windows files. COM files (and thus OLE) need to be registered in order to use the objects inside them (read the below suggestions for registering).

My MT5 environment is working fine so i can't reproduce the error but i would try doing the following:

That's all i can do for you now, no guarantees.

 Dear TripleHeinz,

thanks for your help, unfortunately i tried to re-register the dll and also to copy your dll in my mt5 installation and in the system32 but the problem remain.

The problem is also in the installation phase with the same error message. I think that the mt5 creators should do an analysys to understand where stays the problem and resolve it. My Windows is ok and I haven't problems with others application nether with mt4

Regards

 

 
TripleHeinz:

I've coded in Win32 before and understand a few of the API internals. The use of ole32.dll means that terminal64.exe is probably a COM application or uses COM objects, the thing is that i have little experience with COM programs but i'll try to help with a little analysis.

I did an imports dump for a working version of terminal64.exe (build 712) and these are all symbols imported from ole32.dll:

Your ole32.dll should contain all of these exports or else it is corrupt or is an old version installed by another application but i really doubt it. There're many ways and applications you could use for getting a list of exported symbols from ole32.dll, but if you don't understand anything that you're doing then i recommend using Stud_PE (wich is what i used for getting the table above): http://www.cgsoftlabs.ro/studpe.html

What i don't understand is if terminal64.exe is not finding the entry point of the dll itself or for a specific symbol. It would be very helpful for debugging if the message box could display the symbol it is trying to load.

I believe that terminal64.exe is dinamically loading ole32.dll and this gives a chance that it's not finding it. Make sure that the file is in there (Windows\System32). Also the dll may be unregistered but it would be very unlikely because OLE is a part of the core foundation of Windows files. COM files (and thus OLE) need to be registered in order to use the objects inside them (read the below suggestions for registering).

My MT5 environment is working fine so i can't reproduce the error but i would try doing the following:

That's all i can do for you now, no guarantees.

 

 

Hi,

I tried the Stud_PE but when I search file ole32.dll the application doesn't see the file... Any ideas?

 

thanks 

 
Tigeerr:

Hi,

I tried the Stud_PE but when I search file ole32.dll the application doesn't see the file... Any ideas?

 

thanks 

Hi,

When you're in the open dialog, you have to filter dll files at the bottom right:


But if you say that you encounter the same message at the installation then i would skip this step, it must be something else. I'll try to analyse the installer available from the official MT5 site.

 
Ok, thanks. I tried with activtrades mt5 installer and with original mt5 installer fom official mt5 site, either have the same problem during the installatiion

Bye
 

The truth is that the solution is beyond my knowledege. It is really impossible to debug without having the error raising in my own machine. I would really try Process Monitor from sysinternals on your machine: http://technet.microsoft.com/en-us/sysinternals/bb896645

Open Process Monitor then open MT5, click ok to error message then stop capturing events (Ctrl+E) then filter events by process name (terminal64.exe) and finally find entries (Ctrl+F) with "ole32.dll" to see if you find something relevant. This is probably not the best method to debug a program but at least it's something and it's easy.

DLL access OK:


It confuses me the fact that other programs do not fail to load the same dll. Try virtualization as a last resort, don't cut your chances of getting your hands on the great MT5 platform.

 
TripleHeinz:

The truth is that the solution is beyond my knowledege. It is really impossible to debug without having the error raising in my own machine. I would really try Process Monitor from sysinternals on your machine: http://technet.microsoft.com/en-us/sysinternals/bb896645

Open Process Monitor then open MT5, click ok to error message then stop capturing events (Ctrl+E) then filter events by process name (terminal64.exe) and finally find entries (Ctrl+F) with "ole32.dll" to see if you find something relevant. This is probably not the best method to debug a program but at least it's something and it's easy.

DLL access OK:

It confuses me the fact that other programs do not fail to load the same dll. Try virtualization as a last resort, don't cut your chances of getting your hands on the great MT5 platform

Dear TripleHeinz,

I applied your suggest, for process name terminal64.exe with ProcessMonitor tool I can see only two entries refered to ole32.dll and either are SUCCESS. So I don't know what is the problem. I think the problem is in Windows 7 64 bit because I have an installation in a Windows 7 32 bit and there I have not problems.

 

 

 Is it possible that the mt5 developer doesn't analyse this problem??? 

Bye 

 
phi.nuts:

Sorry, I'm clueless :( There are same case in this forum and that was solved by re-installing 7 - which I don't like it >_<.

You may subscribe to this topic by clicking the star next to this topic's title and manage notification in your profile > favorites > notification. See if anyone else have the solution :)

I just installed 32bit version on my 64bit windows 7 using /32 option :

mt5setup /32

Now everything works fine - I didn't manage to resolve problems with 64bit version.

Reason: