Problem locating:Source codeIt was compiled on 32-bit Win8. It is okay to run and call thunder in 32-bit XP and win 7, but some users have indicated that thunder cannot be called normally on 64-bit machines.
According to the query, the 64-bit host does not support calling thunder. The log file shows that the COM component to be called is not registered. However, the thunder on win2008 is normal and the problem of thunder is ruled out.
An issue on the stackoverflow website reminds me that 64 platforms may not match 32-bit com interfaces! Http://stackoverflow.com/questions/14141616/regsvr32-file-was-loaded-but-the-entry-point-dllregisterserver)
Later, I found out that the default vs compilation platform is anycpu, which means compiledProgramIt contains two sets of running logic. For example, my host is 32-bit. If it is compiled in anycpu mode, the compiled program runs in 32-bit windows, however, if you are a 64-bit machine, it will run in 64-Bit mode. Http://www.cnblogs.com/tingfeng/articles/1943646.html)
This logic seems to have no problem, but the problem is that in my program, the 32-bit thunder COM component is called by default, that is, on a 64-bit machine, I call the 32-bit COM component in 64-Bit mode, which is the root cause of the problem.
After understanding the root cause of the problem, the solution is very simple. Change the target compiling platform of Vs to x86, that is, even on a 64-bit machine, it is still running in a 32-bit way.
Solve the problem.
PS: although the problem is solved, I try to add a 64-bit COM component reference on a 32-bit machine, this is not to say that the 64-bit COM component cannot be called on a 32-bit machine to generate a 64-bit application?