我有一个使用Visual Studio 2005在32位Windows XP机器上编写的C#应用程序.该应用程序在Windows XP机器上运行良好,但是当我尝试在64位Windows 7专业机器上运行它时,我得到以下对话框在启动时:

这是详细信息的全文.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
at ICSNeoCSharp.IcsNeoDll.icsneoTxMessages(Int32 hObject, IcsSpyMessage& pMsg, Int32 lNetworkID, Int32 lNumMessages)
at ICSNeoCSharp.FormDTCApplication.transmitFlowControl(Int32 myArbID) in C:\Documents and Settings\Administrator\Desktop\Adam Stuff ThinkPad\DTC Checker FINAL\frmDTCApp.cs:line 1750
at ICSNeoCSharp.FormDTCApplication.flowControlTimer_Tick(Object sender, EventArgs e) in C:\Documents and Settings\Administrator\Desktop\Adam Stuff ThinkPad\DTC Checker FINAL\frmDTCApp.cs:line …Run Code Online (Sandbox Code Playgroud) 考虑以下理解
regsvr32调用入口点DllRegisterServer/ DllUnregisterServer加载目标DLL到通过其地址空间后LoadLIbrary.C:\Windows\SysWOW64但是在我的2008 R2 Box上,我能够通过64位regsvr32注册一个32位的dll.怎么可能?我错过了什么吗?

我必须在我的应用程序中使用第三方DLL.DLL是32位,我使用的系统是64位操作系统.
我在我的DotNet应用程序(framework-4.5)中导入了32位DLL,如下所示
[DllImport("Sample.dll",
EntryPoint = "Add",
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
public static extern int Add(int iA, int iB);
Run Code Online (Sandbox Code Playgroud)
在IIS 7.5中 - 我将"启用32位应用程序"设置为"True".
并尝试将编译器管理器设置为 - X86,x64和任何CPU.
但是所有的尝试都会导致相同的错误
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题......
我的公司运行一个用delphi编写的旧应用程序.一个简单的com服务器,为某些计算机提供一些数据库.我必须在每台计算机上运行一次服务器以注册com接口,并且自从windows xp中的任何东西以来它一直在工作.使用windows xp我从来没有遇到过一个问题,但在Windows 7中,该类只是不会注册,无论我尝试什么(我尝试导出注册密钥),当我打开客户端时,我仍然会收到错误"Class not registered ".
有什么建议?Plz救我的圣诞节.