我有一个.exe,它是从.for(fortran)和.c源文件的组合编译而来的。
由于图形服务器出错,它不会在Win98之后运行:
“Ox7e4467a9用户32.dll中的访问冲突错误”
除非有其他方法解决上述错误(?),否则我假设我必须使用更现代的图形服务器从源代码重新编译.exe。我有所有文件来做这个吧.lib文件!
是否可以从当前的.exe中删除缺少的lib文件的任何信息?
可以解组.exe,但我不认为我从中获得了多少收获?
答案 0 :(得分:1)
您可能无法从可执行文件中“剪切”lib文件。即使您可以以某种方式从中获取代码,标准编译器和链接器也不会知道如何链接它,因为它不会有所需的链接信息(它们不包含在结果二进制文件中)。
但是,如果您的问题是您的程序在Win98上运行,但不能在基于NT的系统(XP,Vista,Win7)上运行,我认为更容易找到,崩溃的不兼容性该程序。您提到在user32.dll中发生访问冲突。在调试器中启动程序,查看崩溃发生的功能。确保已加载PDB符号(因此您可以看到内部非公共函数的名称)。跟踪调用哪个Win32 API以及它的参数是什么。试着弄清楚,无法访问的内存应该是什么。
如果没有任何其他信息,也无法帮助您。
答案 1 :(得分:0)
一旦集成到一个映像文件(你的exe)中,一个静态绑定到一个应用程序的库(你的.lib)(由你的链接器完成)不能分开,区别于你自己的代码,因此,一个无法通过反编译exe来从lib中检索代码。