标签: executable

混合本机/托管可执行文件中的最终托管异常处理程序

我有一个用/ clr编译的MFC应用程序,我正在尝试为其他未捕获的托管异常实现最终处理程序.对于本机异常,重写CWinApp::ProcessWndProcException工作.

Jeff的CodeProject文章中提出了两个事件,Application.ThreadException并AppDomain.CurrentDomain.UnhandledException没有提出.

任何人都可以建议一种方法为混合可执行文件提供最终的托管异常处理程序?


更新:

似乎这些异常处理程序仅在下游Application.Run或类似地触发(存在工作线程风格,无法记住名称.)如果要真正全局捕获托管异常,则需要安装SEH过滤器.你不会得到一个System.Exception,如果你想要一个callstack,你将不得不推出自己的助行器.

在关于该主题的MSDN论坛问题中,建议覆盖a中主MFC线程的足够低级别的点try ... catch (Exception^).例如,CWinApp::Run.这可能是一个很好的解决方案,但我没有考虑任何性能或稳定性的影响.在保释之前,您将有机会使用调用堆栈进行记录,并且可以避免默认的Windows unahndled异常行为.

executable unhandled mixed exception

6
推荐指数
1
解决办法
1746
查看次数

C# - 如何调用添加到项目解决方案中的exe

所以我在项目的解决方案中添加了一个EXE.EXE通过stdout执行一些操作并输出数据.我想捕获输出,但更重要的是如何在我的程序中执行EXE?

c# executable

6
推荐指数
1
解决办法
7388
查看次数

如何判断win32应用程序是否使用.NET运行时

如何判断可执行文件是否为.NET应用程序?

我不想安装Visual Studio.但如果我必须,我会.命令行程序是首选.

.net executable

6
推荐指数
4
解决办法
6678
查看次数

使用Linux上的Qt为Windows创建可执行文件

是否可以在Linux上使用与Eclipse相同的Qt代码在Linux和Windows上创建可执行文件?或者是否有必要在我的Linux机器上安装Qt Creator?

linux windows executable qt

6
推荐指数
1
解决办法
2万
查看次数

什么是__NULL_IMPORT_DESCRIPTOR适用于(MSVC地图文件)?

我有一个使用microsoft visual studio生成的地图文件.它包含一个名为__NULL_IMPORT_DESCRIPTOR的相对较大的区域.这有什么用?它与链接的dll有关,但我无法弄清楚它的确切目的.

linker executable coff map visual-c++

6
推荐指数
1
解决办法
1792
查看次数

为什么64位程序文件大于32位?

64位编译文件约.比32位可执行文件大20%.我认为64位操作系统与32位操作系统相同.感谢上帝,这个比例不是50%.20%真的有必要吗?64位程序是否消耗更多RAM?128比特会大得多吗?

另外: 我知道32位字对比64位字.char'A'在32位模式下需要4个字节,在内存中需要64位8字节.可执行文件是否包含大量对齐/填充的常量,因此它以64位形式更大?恕我直言64位exe和32位exe之间的区别是指令代码 - 我认为它们不会过多地夸大文件大小 - 以及静态数据和内存地址.如果是这样,exe包含的静态数据比我想象的要多得多.它有点像PNG8和PNG24.或者我完全错了.

compiler-construction executable operating-system 32bit-64bit

6
推荐指数
1
解决办法
3593
查看次数

为什么我的QT应用程序不起作用?

我在Windows 7 64位上使用Qt Creator构建了一个Qt 5应用程序(使用msvc 2010).该应用程序在我的计算机上运行完美,但在其他计算机上无法运行.

我将所有在Dependency Walker中显示为缺失的.dll复制到程序文件夹中并且没有错误,但是应用程序不会运行.

我在Windows XP和Windows 7 64和32位上测试过它.
我该怎么做才能找出问题所在?

更新:我安装了Qt 4.8.4(vs 2008)和msvc 2008 express并且我编译了它并且它在其他计算机上运行,​​具有Qt4的.dll.也许有人知道Qt5有什么问题......

executable qt qt5

6
推荐指数
1
解决办法
1万
查看次数

不能执行二进制文件

我有一个二进制可执行文件,它是我下载的学术软件包的一部分.我似乎无法让它运行,我无法访问源代码.我尝试过以下的事情.有什么想法吗?

非常感谢.

$ chmod +x random_cell
$ ./random_cell
-bash: ./random_cell: cannot execute binary file
$ file random_cell
random_cell: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped
$ ldd random_cell
random_cell: is not an object file
$ uname -m
x86_64
Run Code Online (Sandbox Code Playgroud)

binary executable ldd

6
推荐指数
1
解决办法
2万
查看次数

核心转储本身是可执行的吗?

Core转储上的维基百科页面说

在类Unix系统中,核心转储通常使用标准的可执行映像格式:

a.out in older versions of Unix,
ELF in modern Linux, System V, Solaris, and BSD systems,
Mach-O in OS X, etc.
Run Code Online (Sandbox Code Playgroud)

这是否意味着核心转储本身是可执行的?如果没有,为什么不呢?

编辑:由于@ WumpusQ.Wumbley coredump_filter在评论中提到了一个问题,或许上面的问题应该是:是否可以生成核心转储,使其可以自行执行?

unix linux executable coredump executable-format

6
推荐指数
1
解决办法
1481
查看次数

为什么PowerShell在命令行上处理空字符串的方式不同?

这个问题类似于使用powershell将空参数传递给可执行文件,但我想扩展问题和答案并更好地理解"为什么",因为它似乎是一个PowerShell陷阱.

如果加载PSCX并运行echoargs(外部命令,即exe文件),您可以看到跳过空字符串参数:

PS> echoargs word "two words" "" 123
Arg 0 is <word>
Arg 1 is <two words>
Arg 2 is <123>
Run Code Online (Sandbox Code Playgroud)

但是如果你使用"CMD escape"(--%),你可以使它显示为"正确":

PS> echoargs --% word "two words" "" 123
Arg 0 is <word>
Arg 1 is <two words>
Arg 2 is <>
Arg 3 is <123>
Run Code Online (Sandbox Code Playgroud)

类似地,如果编写PowerShell函数,则正确处理空字符串:

PS> Show-Args word "two words" "" 123
Arg 0 is <word>
Arg 1 is <two words>
Arg 2 is <>
Arg 3 …
Run Code Online (Sandbox Code Playgroud)

powershell executable command-line

6
推荐指数
1
解决办法
367
查看次数