x86控制台应用程序无法在调试器上的64位计算机上运行 [英] x86 console application doesn't run on 64bit machines except in debugger

查看:116
本文介绍了x86控制台应用程序无法在调试器上的64位计算机上运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了更好地把握我的问题我试图通过摆脱NUnit来降低复杂性。现在,我编写了一个简单的控制台应用程序(C#),该应用程序与c ++ / cli包装器交互,该包装器调用公司框架c ++ dll。



Dumpbin说所有程序集都是32位的。 Visual Studio的控制台应用程序和包装器设置为x86。在x86机器上,控制台应用程序的工作原理像超级按钮一样,在x64上却没有,除非从带有调试器的Visual Studio 2013中调用(在没有调试器的情况下从Visual Studio运行时是无效的)。程序集设置为 Systemeigenes Codedebugging aktivieren(激活本机代码调试),并且Visual Studio托管过程被停用。

  SetUp:System.IO.FileLoadException:无法加载文件或程序集 The_Wrapper.DLL或其依赖项之一。动态链接库(DLL)初始化例程失败。 (来自HRESULT的异常:0x8007045A)

我尝试使用64位依赖项遍历器(x86版本)进行性能分析机器,但是在加载IMM32.DLL之后死了。 x86机器上的输出是这样的:

 操作系统:Microsoft Windows NT / 2000 / XP / 2003 / Vista based Media中心(32位),版本6.01.7601 Service Pack 1 
程序可执行文件:d:\tmp\binplain\bin\PLAINCONSOLEAPPLICATION.EXE
程序参数:
起始目录:D:\tmp\binplain\bin\
搜索路径:C:\Windows\system32; C:\Windows; C:\Windows\System32\Wbem; C: \Windows\System32\WindowsPowerShell\v1.0\

所选选项:
通过将任何应用程序路径目录插入PATH环境变量来模拟ShellExecute。
日志线程信息。
使用简单的线程号代替实际的线程ID。
记录首次机会异常。
记录调试输出消息。
记录文件名时使用完整路径。
每行日志记录一个时间戳。
自动打开并分析子进程。
---------------------------------------------- ----------------------------------

00:00:00.000:开始于 d:\tmp\binplain\bin\PLAINCONSOLEAPPLICATION.EXE(进程0x9F0)在线程0的地址0x01360000处。
00:00:00.000:已加载 c:\windows\system32\由线程1在地址0x76F20000处的NTDLL.DLL。
00:00:00.000:由线程1在地址0x6CB30000处加载 c:\windows\system32\MSCOREE.DLL。
00: 00:00.015:线程1在地址0x75E00000处加载了 c:\windows\system32\KERNEL32.DLL。
00:00:00.015:加载了 c:\windows\system32\KERNEL32.DLL .DLL在线程1的地址0x75320000处。
00:00:00.046:已到达入口点。所有隐式模块均已加载。
00:00:00.046:通过线程1在地址0x77060000处加载了 c:\windows\system32\ADVAPI32.DLL。
00:00:00.046:加载了 c:\windows线程1在地址0x76E70000上的 system32\MSVCRT.DLL。
00:00:00.046:线程1在地址0x76CA0000上加载了 c:\windows\system32\SECHOST.DLL。 b $ b 00:00:00.062:通过线程1在地址0x75B30000处加载了 c:\windows\system32\RPCRT4.DLL。
00:00:00.062:加载了 c:\windows\线程1在地址0x6C9E0000上的 microsoft.net框架 v4.0.30319 MSCOREEI.DLL。
00:00:00.062:加载了 c:\\ windows \\ system32 \\ SHLWAPI.DLL 由线程1在地址0x75DA0000处。
00:00:00.062:由线程1在地址0x77100000处加载了 c:\windows\system32\GDI32.DLL。
00:00:00.062 :通过线程1在地址0x75F70000处加载了 c:\windows\system32\USER32.DLL。
00:00:00.078:已加载了 c:\windows\system32\LPK.DLL通过线程1在地址0x76040000处
00:00:00.078:通过t在地址0x75A90000处加载了 c:\windows\system32\USP10.DLL hread 1.
00:00:00.078:通过线程1在地址0x75BE0000处加载了 c:\windows\system32\IMM32.DLL。
00:00:00.078:已加载 c:线程1在地址0x75CA0000处的 windows\system32\MSCTF.DLL中。
00:00:00.093:已加载 c:\windows\microsoft.net\framework\v4.0.30319\线程1在地址0x6B660000上的 CLR.DLL。
00:00:00.093:线程1在地址0x6BCD0000上加载了 c:\windows\system32\MSVCR100_CLR0400.DLL。
00 :00:00.093:线程1在地址0x7532B760的 c:\windows\system32\KERNELBASE.DLL中发生了第一次机会异常0x04242420(未知)。
00:00:00.093:线程2在以下位置启动地址为0x6B7C741C的 c:\windows\microsoft.net\framework\v4.0.30319\CLR.DLL。
00:00:00.093:线程3在地址为0x6B7159C0的 c:\windows\microsoft.net\framework\v4.0.30319\CLR.DLL中启动。
00:00:00.093:线程4在地址为0x76F4FD0F的 c:\windows\system32\NTDLL.DLL中启动。
00:00:00.093:通过线程1在地址0x6A890000处加载了 c:\windows\assembly\nativeimages_v4.0.30319_32\mscorlib\cece9d0256e18427b64587ba690605d4\MSCORLIB.NI.DLL。
00:00:00.109:通过线程1在地址0x6BF70000处加载了 c:\windows\microsoft.net\framework\v4.0.30319\NLSSORTING.DLL。
00:00:00.109:通过线程1在地址0x75930000处加载了 c:\windows\system32\OLE32.DLL。
00:00:00.109:在以下位置加载了 c:\windows\system32\CRYPTBASE.DLL通过线程1地址0x74FF0000。
00:00:00.109:通过线程1在地址0x6BF10000处加载了 c:cwindows\microsoft.net\framework\v4.0.30319\CLRJIT.DLL。 b $ b 00:00:00.124:通过线程1在地址0x6BEB0000处加载。
00:00:00.124:通过线程1在地址0x00640000处加载。
00:00:00.124:已卸载线程1在地址0x6BEB0000处的。
00:00:00.124:线程1在地址0x6BEB0000处加载了 d:\tmp\binplain\bin\THE_WRAPPER.DLL。
00 :00:00.124:加载了 d:\tmp\binplain\bin\CORE_QUANTITY_1_0。线程1处地址0x6BE30000的 DLL。
00:00:00.140:线程1处地址0x6BD90000的 d:\tmp\binplain\bin\CORE_DATATYPES_1_0.DLL已加载。
00 :00:00.140:通过线程1在地址0x6A880000处加载了 d:\tmp\binplain\bin\CORE_MEMORY_1_0.DLL。
00:00:00.140:已加载 d:\tmp\线程1在地址0x6A870000处的binplain\bin\CORE_EXCEPTION_1_0.DLL
00:00:00.140:线程1在地址0x6A7F0000处加载了 c:\windows\system32\MSVCP120.DLL。
00:00:00.140:通过线程1在地址0x6A700000处加载 c:\windows\system32\MSVCR120.DLL。
00:00:00.156:已加载 d:\tmp线程1在地址0x6A4F0000处的 binplain\bin\OPENCV_CORE248.DLL。
00:00:00.156:在地址处加载了 d:\tmp\binplain\bin\DEVICECOM_CAMERA_IRSOFT_1_0.DLL线程1的0x6A4C0000。
00:00:00.156:线程1的地址0x6A4B0000加载了 d:\tmp\binplain\bin\DEVICECOM_STACK_1_0.DLL。
00:00:00.156 :已加载 d:\tmp\binplain\bin\DEVICECOM_DEVICEHANDLER_CAMERA_1_0.DLL通过线程1在地址0x6A490000处。
00:00:00.156:通过线程1在地址0x6A3F0000处加载了 d:\tmp\binplain\bin\DEVICECOM_CAMERA_1_0.DLL。
00:00 :00.171:由线程1在地址0x6A3B0000处加载 d:\tmp\binplain\bin\DEVICECOM_CORE_1_0.DLL。
00:00:00.171:已加载 d:\tmp\binplain\线程1在地址0x6A380000处的 bin\CORE_ACTION_1_0.DLL。
00:00:00.171:线程1在地址0x6A360000处加载了 d:\tmp\binplain\bin\CORE_PROTOCOL_1_0.DLL。 。
00:00:00.171:线程1在地址0x69DB0000处加载了 d:\tmp\binplain\bin\CORE_SOCKET_1_0.DLL。
00:00:00.187:加载了 c :通过线程1在地址0x75F30000处的:windowswindowssystem32WS2_32.DLL。
00:00:00.187:通过在地址0x76E60000处加载 c:\windows\system32\NSI.DLL线程1。
00:00:00.187:通过线程1在地址0x737A0000处加载 c:\windows\system32\WINMM.DLL。
00:00:00.187:加载 d:线程1在地址0x10000000处的 tmp\binplain 1.bin atWDAPI1020.DLL。
00:00:00.187:Lo通过线程1在地址0x75C00000处添加了 c:\windows\system32\OLEAUT32.DLL。
00:00:00.202:已加载 d:\tmp\binplain\bin\CORE_UTILS_1_0。线程1处地址0x69D90000的DLL。
00:00:00.202:线程1处地址0x69D60000处的 d:\tmp\binplain\bin\CORE_CODECS_1_0.DLL已加载。 :00:00.202:通过线程1在地址0x69DE0000处加载了 d:\tmp\binplain\bin\MEASUREMENTS_RADIOMETRY_1_0.DLL。
00:00:00.202:已加载 d:\tmp\线程1在地址0x69D30000处的binplain\bin\VISION_IMGPROC_1_0.DLL
00:00:00.202:通过地址0x69860000在地址0x69860000处加载了 d:\tmp\binplain\bin\CORE_IMGIO_1_0.DLL。线程1.
00:00:00.218:通过线程1在地址0x697D0000处加载了 d:tmp\binplain\bin\OPENCV_HIGHGUI248.DLL。
00:00:00.218:已加载地址0x6C5D0000处的线程1 c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\COMCTL32.DLL。
00:00:00.218:加载了 c:\ \windows\system32\MSVFW32.DLL线程1的地址0x69D00000。
00:00:00.218:线程1的地址0x76050000加载了 c:\windows\system32\SHELL32.DLL。
00:00:00.234:加载了通过线程1在地址0x697B0000处的 c:\windows\system32\AVIFIL32.DLL。
00:00:00.234:在地址处加载了 c:\windows\system32\MSACM32.DLL 0x72F70000通过线程1。
00:00:00.234:通过线程1在地址0x69790000处加载了 c:cwindows\system32\AVICAP32.DLL。
00:00:00.234:已加载线程1在地址0x743B0000处的c:\windows\system32\VERSION.DLL
00:00:00.234:在地址0x69770000处加载了 c:\windows\system32\VCOMP120.DLL通过线程1。
00:00:00.249:通过线程1在地址0x69750000处加载 d:\tmp\binplain\bin\VISION_KEYDEFINITIONS_1_0.DLL。
00:00:00.249:通过线程1在地址0x694E0000处加载了 d:\tmp\binplain\bin\OPENCV_IMGPROC248.DLL。
00:00:00.249:已加载了 d:\tmp\binplain\bin\线程1在地址0x69480000上的 VISION_RADIOMETRY_1_0.DLL。
00:00:00.249:加载了 c :通过线程1在地址0x732B0000处的:windowswindowssystem32 IPHLPAPI.DLL。
00:00:00.265:通过在地址0x73460000处加载 c:\windows\system32\WINNSI.DLL线程1。
00:00:00.265:线程1在地址0x69420000处加载了 d:\tmp\binplain\bin\VISION_IMGIO_1_0.DLL。
00:00:00.265:线程5在 d:tmp\binplain\bin\WDAPI1020.DLL中从地址0x10009168开始。
00:00:00.265:线程6在地址为0x10009168的 d:\tmp\binplain\bin\WDAPI1020.DLL中启动。
00:00:00.265:线程7在地址为0x10009168的 d:\tmp\binplain\bin\WDAPI1020.DLL中启动。
00:00:00.280:通过线程1在地址0x69370000处加载了 c:\windows\microsoft.net\framework\v4.0.30319\DIASYMREADER.DLL。
00:00 :00.327:线程1在地址0x74AF0000处加载了 c:\windows\system32\CRYPTSP.DLL。
00:00:00.343:已加载 c:\windows\system32\RSAENH。线程1在地址0x74890000处的 DLL。
00:00:08.876:线程3以代码0(0x0)退出。
00:00:08.892:线程6退出,代码为0(0x0)。
00:00:08.892:线程7以代码0(0x0)退出。
00:00:08.892:线程5以代码0(0x0)退出。
00:00:08.892:线程4退出,代码为0(0x0)。
00:00:08.892:线程2退出,代码为0(0x0)。
00:00:08.892:由线程1退出,代码为0(0x0),退出了 d:\tmp\binplain\bin\PLAINCONSOLEAPPLICATION.EXE(进程0x9F0)。

当我实际上正在开发的软件产品使用包装器时(x86,C#WinForms),即使没有调试器,它也可以在x64上运行,但是



我忽略了什么?哪些工具可能对我有帮助?

解决方案

有点尴尬,但仍然可以共享:



我添加到此现有项目中的公司框架库使用Jungo USB驱动程序。由于未知原因,文件wdapi1020.dll被检入并复制到我的bin目录中。不幸的是,它是该文件的x86版本。当我最终确定必须删除它时,PlainConsoleApplication使用了SysWOW64中的那个,一切运行正常。现在,我必须说服我们的管理员将驱动程序安装在buildserver上,或者说服框架开发人员更改有关Jungo驱动程序用法的某些信息。...这仍然很有趣。



<对于感兴趣的人,这是我的发现方式:我拿了问题末尾提到的软件产品并安装了它(而不是从bin文件夹中复制它)。当我将控制台应用程序放入其文件夹后,它突然工作了。我开始比较文件,发现实际上有太多文件了。删除后,我的脸上露出了微笑。


In order to get a better hold on my question NUnit: Could not load file or assembly 'some.dll' or one of its dependencies. The specified module could not be found I tried to reduce complexity by getting rid of NUnit. Now I wrote a plain console application (C#) which interacts with a c++/cli wrapper which does calls on company framework c++ dlls.

Dumpbin says that all assemblies are 32bit. Visual Studio has console application and wrapper set to x86. On x86 machines console application works like a charm, on x64 it doesn't, except when being called from my Visual Studio 2013 with debugger attached (doesn't work when run from Visual Studio without debugger). The assembly is set to "Systemeigenes Codedebugging aktivieren" (activate native? code debugging) and Visual Studio hosting process is deactivated. "It doesn't work" is represented by something like this:

 SetUp : System.IO.FileLoadException : Could not load file or assembly 'The_Wrapper.DLL' or one of its dependencies. A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A)

I tried profiling with dependency walker (x86 version) on the 64 bit machines, but it dies after loading IMM32.DLL. The output on a x86 machine is like this:

 Operating System: Microsoft Windows NT/2000/XP/2003/Vista based Media Center (32-bit), version 6.01.7601 Service Pack 1
 Program Executable: d:\tmp\binplain\bin\PLAINCONSOLEAPPLICATION.EXE
 Program Arguments: 
 Starting Directory: D:\tmp\binplain\bin\
 Search Path: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\

 Options Selected:
      Simulate ShellExecute by inserting any App Paths directories into the PATH environment variable.
      Log thread information.
      Use simple thread numbers instead of actual thread IDs.
      Log first chance exceptions.
      Log debug output messages.
      Use full paths when logging file names.
      Log a time stamp with each line of log.
      Automatically open and profile child processes.
 --------------------------------------------------------------------------------

 00:00:00.000: Started "d:\tmp\binplain\bin\PLAINCONSOLEAPPLICATION.EXE" (process 0x9F0) at address 0x01360000 by thread 1.
 00:00:00.000: Loaded "c:\windows\system32\NTDLL.DLL" at address 0x76F20000 by thread 1.
 00:00:00.000: Loaded "c:\windows\system32\MSCOREE.DLL" at address 0x6CB30000 by thread 1.
 00:00:00.015: Loaded "c:\windows\system32\KERNEL32.DLL" at address 0x75E00000 by thread 1.
 00:00:00.015: Loaded "c:\windows\system32\KERNELBASE.DLL" at address 0x75320000 by thread 1.
 00:00:00.046: Entrypoint reached. All implicit modules have been loaded.
 00:00:00.046: Loaded "c:\windows\system32\ADVAPI32.DLL" at address 0x77060000 by thread 1.
 00:00:00.046: Loaded "c:\windows\system32\MSVCRT.DLL" at address 0x76E70000 by thread 1.
 00:00:00.046: Loaded "c:\windows\system32\SECHOST.DLL" at address 0x76CA0000 by thread 1.
 00:00:00.062: Loaded "c:\windows\system32\RPCRT4.DLL" at address 0x75B30000 by thread 1.
 00:00:00.062: Loaded "c:\windows\microsoft.net\framework\v4.0.30319\MSCOREEI.DLL" at address 0x6C9E0000 by thread 1.
 00:00:00.062: Loaded "c:\windows\system32\SHLWAPI.DLL" at address 0x75DA0000 by thread 1.
 00:00:00.062: Loaded "c:\windows\system32\GDI32.DLL" at address 0x77100000 by thread 1.
 00:00:00.062: Loaded "c:\windows\system32\USER32.DLL" at address 0x75F70000 by thread 1.
 00:00:00.078: Loaded "c:\windows\system32\LPK.DLL" at address 0x76040000 by thread 1.
 00:00:00.078: Loaded "c:\windows\system32\USP10.DLL" at address 0x75A90000 by thread 1.
 00:00:00.078: Loaded "c:\windows\system32\IMM32.DLL" at address 0x75BE0000 by thread 1.
 00:00:00.078: Loaded "c:\windows\system32\MSCTF.DLL" at address 0x75CA0000 by thread 1.
 00:00:00.093: Loaded "c:\windows\microsoft.net\framework\v4.0.30319\CLR.DLL" at address 0x6B660000 by thread 1.
 00:00:00.093: Loaded "c:\windows\system32\MSVCR100_CLR0400.DLL" at address 0x6BCD0000 by thread 1.
 00:00:00.093: First chance exception 0x04242420 (Unknown) occurred in "c:\windows\system32\KERNELBASE.DLL" at address 0x7532B760 by thread 1.
 00:00:00.093: Thread 2 started in "c:\windows\microsoft.net\framework\v4.0.30319\CLR.DLL" at address 0x6B7C741C.
 00:00:00.093: Thread 3 started in "c:\windows\microsoft.net\framework\v4.0.30319\CLR.DLL" at address 0x6B7159C0.
 00:00:00.093: Thread 4 started in "c:\windows\system32\NTDLL.DLL" at address 0x76F4FD0F.
 00:00:00.093: Loaded "c:\windows\assembly\nativeimages_v4.0.30319_32\mscorlib\cece9d0256e18427b64587ba690605d4\MSCORLIB.NI.DLL" at address 0x6A890000 by thread 1.
 00:00:00.109: Loaded "c:\windows\microsoft.net\framework\v4.0.30319\NLSSORTING.DLL" at address 0x6BF70000 by thread 1.
 00:00:00.109: Loaded "c:\windows\system32\OLE32.DLL" at address 0x75930000 by thread 1.
 00:00:00.109: Loaded "c:\windows\system32\CRYPTBASE.DLL" at address 0x74FF0000 by thread 1.
 00:00:00.109: Loaded "c:\windows\microsoft.net\framework\v4.0.30319\CLRJIT.DLL" at address 0x6BF10000 by thread 1.
 00:00:00.124: Loaded "" at address 0x6BEB0000 by thread 1.
 00:00:00.124: Loaded "" at address 0x00640000 by thread 1.
 00:00:00.124: Unloaded "" at address 0x6BEB0000 by thread 1.
 00:00:00.124: Loaded "d:\tmp\binplain\bin\THE_WRAPPER.DLL" at address 0x6BEB0000 by thread 1.
 00:00:00.124: Loaded "d:\tmp\binplain\bin\CORE_QUANTITY_1_0.DLL" at address 0x6BE30000 by thread 1.
 00:00:00.140: Loaded "d:\tmp\binplain\bin\CORE_DATATYPES_1_0.DLL" at address 0x6BD90000 by thread 1.
 00:00:00.140: Loaded "d:\tmp\binplain\bin\CORE_MEMORY_1_0.DLL" at address 0x6A880000 by thread 1.
 00:00:00.140: Loaded "d:\tmp\binplain\bin\CORE_EXCEPTION_1_0.DLL" at address 0x6A870000 by thread 1.
 00:00:00.140: Loaded "c:\windows\system32\MSVCP120.DLL" at address 0x6A7F0000 by thread 1.
 00:00:00.140: Loaded "c:\windows\system32\MSVCR120.DLL" at address 0x6A700000 by thread 1.
 00:00:00.156: Loaded "d:\tmp\binplain\bin\OPENCV_CORE248.DLL" at address 0x6A4F0000 by thread 1.
 00:00:00.156: Loaded "d:\tmp\binplain\bin\DEVICECOM_CAMERA_IRSOFT_1_0.DLL" at address 0x6A4C0000 by thread 1.
 00:00:00.156: Loaded "d:\tmp\binplain\bin\DEVICECOM_STACK_1_0.DLL" at address 0x6A4B0000 by thread 1.
 00:00:00.156: Loaded "d:\tmp\binplain\bin\DEVICECOM_DEVICEHANDLER_CAMERA_1_0.DLL" at address 0x6A490000 by thread 1.
 00:00:00.156: Loaded "d:\tmp\binplain\bin\DEVICECOM_CAMERA_1_0.DLL" at address 0x6A3F0000 by thread 1.
 00:00:00.171: Loaded "d:\tmp\binplain\bin\DEVICECOM_CORE_1_0.DLL" at address 0x6A3B0000 by thread 1.
 00:00:00.171: Loaded "d:\tmp\binplain\bin\CORE_ACTION_1_0.DLL" at address 0x6A380000 by thread 1.
 00:00:00.171: Loaded "d:\tmp\binplain\bin\CORE_PROTOCOL_1_0.DLL" at address 0x6A360000 by thread 1.
 00:00:00.171: Loaded "d:\tmp\binplain\bin\CORE_SOCKET_1_0.DLL" at address 0x69DB0000 by thread 1.
 00:00:00.187: Loaded "c:\windows\system32\WS2_32.DLL" at address 0x75F30000 by thread 1.
 00:00:00.187: Loaded "c:\windows\system32\NSI.DLL" at address 0x76E60000 by thread 1.
 00:00:00.187: Loaded "c:\windows\system32\WINMM.DLL" at address 0x737A0000 by thread 1.
 00:00:00.187: Loaded "d:\tmp\binplain\bin\WDAPI1020.DLL" at address 0x10000000 by thread 1.
 00:00:00.187: Loaded "c:\windows\system32\OLEAUT32.DLL" at address 0x75C00000 by thread 1.
 00:00:00.202: Loaded "d:\tmp\binplain\bin\CORE_UTILS_1_0.DLL" at address 0x69D90000 by thread 1.
 00:00:00.202: Loaded "d:\tmp\binplain\bin\CORE_CODECS_1_0.DLL" at address 0x69D60000 by thread 1.
 00:00:00.202: Loaded "d:\tmp\binplain\bin\MEASUREMENTS_RADIOMETRY_1_0.DLL" at address 0x69DE0000 by thread 1.
 00:00:00.202: Loaded "d:\tmp\binplain\bin\VISION_IMGPROC_1_0.DLL" at address 0x69D30000 by thread 1.
 00:00:00.202: Loaded "d:\tmp\binplain\bin\CORE_IMGIO_1_0.DLL" at address 0x69860000 by thread 1.
 00:00:00.218: Loaded "d:\tmp\binplain\bin\OPENCV_HIGHGUI248.DLL" at address 0x697D0000 by thread 1.
 00:00:00.218: Loaded "c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\COMCTL32.DLL" at address 0x6C5D0000 by thread 1.
 00:00:00.218: Loaded "c:\windows\system32\MSVFW32.DLL" at address 0x69D00000 by thread 1.
 00:00:00.218: Loaded "c:\windows\system32\SHELL32.DLL" at address 0x76050000 by thread 1.
 00:00:00.234: Loaded "c:\windows\system32\AVIFIL32.DLL" at address 0x697B0000 by thread 1.
 00:00:00.234: Loaded "c:\windows\system32\MSACM32.DLL" at address 0x72F70000 by thread 1.
 00:00:00.234: Loaded "c:\windows\system32\AVICAP32.DLL" at address 0x69790000 by thread 1.
 00:00:00.234: Loaded "c:\windows\system32\VERSION.DLL" at address 0x743B0000 by thread 1.
 00:00:00.234: Loaded "c:\windows\system32\VCOMP120.DLL" at address 0x69770000 by thread 1.
 00:00:00.249: Loaded "d:\tmp\binplain\bin\VISION_KEYDEFINITIONS_1_0.DLL" at address 0x69750000 by thread 1.
 00:00:00.249: Loaded "d:\tmp\binplain\bin\OPENCV_IMGPROC248.DLL" at address 0x694E0000 by thread 1.
 00:00:00.249: Loaded "d:\tmp\binplain\bin\VISION_RADIOMETRY_1_0.DLL" at address 0x69480000 by thread 1.
 00:00:00.249: Loaded "c:\windows\system32\IPHLPAPI.DLL" at address 0x732B0000 by thread 1.
 00:00:00.265: Loaded "c:\windows\system32\WINNSI.DLL" at address 0x73460000 by thread 1.
 00:00:00.265: Loaded "d:\tmp\binplain\bin\VISION_IMGIO_1_0.DLL" at address 0x69420000 by thread 1.
 00:00:00.265: Thread 5 started in "d:\tmp\binplain\bin\WDAPI1020.DLL" at address 0x10009168.
 00:00:00.265: Thread 6 started in "d:\tmp\binplain\bin\WDAPI1020.DLL" at address 0x10009168.
 00:00:00.265: Thread 7 started in "d:\tmp\binplain\bin\WDAPI1020.DLL" at address 0x10009168.
 00:00:00.280: Loaded "c:\windows\microsoft.net\framework\v4.0.30319\DIASYMREADER.DLL" at address 0x69370000 by thread 1.
 00:00:00.327: Loaded "c:\windows\system32\CRYPTSP.DLL" at address 0x74AF0000 by thread 1.
 00:00:00.343: Loaded "c:\windows\system32\RSAENH.DLL" at address 0x74890000 by thread 1.
 00:00:08.876: Thread 3 exited with code 0 (0x0).
 00:00:08.892: Thread 6 exited with code 0 (0x0).
 00:00:08.892: Thread 7 exited with code 0 (0x0).
 00:00:08.892: Thread 5 exited with code 0 (0x0).
 00:00:08.892: Thread 4 exited with code 0 (0x0).
 00:00:08.892: Thread 2 exited with code 0 (0x0).
 00:00:08.892: Exited "d:\tmp\binplain\bin\PLAINCONSOLEAPPLICATION.EXE" (process 0x9F0) with code 0 (0x0) by thread 1.

When the wrapper is used by the software product I am actually developing (x86, C# WinForms) it works on x64 even without debugger, but only on my development PC.

What am I overlooking? Which tools might help me?

解决方案

Am a little embarassed, but will share anyway:

The company framework library which I added to this existing project uses Jungo USB Driver. For unknown reasons the file wdapi1020.dll was checked in and copied to my bin directory. Unfortunately it was the x86 version of the file. When I finally figured out that I have to remove it, the PlainConsoleApplication used the one from SysWOW64 and everything went well. Now I have to convince either our admins to install the driver on the buildserver or the framework developers to change something about their usage of Jungo driver .... it will remain interesting.

For the ones interested, here's how I found out: I took the software product mentioned at the end of the question and installed it (instead of copying it from bin folder). When I put the console application into it's folder it suddenly worked. I started comparing the files and figured out that there is actually one too much. Removed it had a biiig smile on my face.

这篇关于x86控制台应用程序无法在调试器上的64位计算机上运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆