我对编译魔术并不熟悉.改造人类可读的代码(或不行为真正可读大会指令)转换成机器代码,对我来说,火箭科学与巫术相结合.
我将把这个问题的主题缩小到Win32可执行文件(.exe).当我在专门的查看器中打开这些文件时,我可以找到分散在不同位置的字符串(通常每个字符16b),但其余的只是垃圾.我认为不可读的部分(大多数)是机器代码(或者可能是资源,例如图像等......).
有没有简单的方法来读取机器代码?将exe作为文件流打开并逐字节读取,如何将这些单独的字节转换为汇编?这些指令字节和汇编指令之间是否有直接的映射?
.exe是如何写的?每条指令四个字节?更多?减?我注意到一些应用程序可以像这样创建可执行文件:例如,在ACD中您可以将一系列图像导出到幻灯片中.但这不一定是SWF幻灯片,ACD See也能够生成EXEcutable演示文稿.怎么做的?
我怎样才能理解EXE文件中的内容?
我正在研究一些Nuget的东西.我想知道Nuget是否适合分发.exe命令 - 或者就此而言,如果Nuget仅用于引用项目(当然你也可以链接到exe而不是dll - IIRC).显然,我可以轻松地创建一个控制台应用程序,然后引用Nuget包,但我想知道是否应该始终这是必要的.此外,它似乎不像宝石,没有宝石的本地回购,所以我觉得.exe(s)不是Nuget包的预期用途,但我不明白为什么他们需要限制在这时尚 - 或者我错过了什么?
我最近创建了使用cx_freeze来创建一个python 3.2.2 exe文件.当我试图运行exe文件时没有发生任何事情.
这是我的test.py文件的代码:
print("hello world")
for i in range(5):
print(i)
Run Code Online (Sandbox Code Playgroud)
这是我的testSetup.py文件的代码:
from cx_Freeze import setup, Executable
exe = Executable(
script="test.py",
base="Win32GUI",
targetName="Test.exe"
)
setup(
name = "Test",
version = "0.1",
description = "I wish programming was this easy",
executables = [exe])
Run Code Online (Sandbox Code Playgroud)
cx_freeze制作的构建目录有一个名为exe.win32-3.2的文件夹,其中包含以下文件:
bz2.pyd
library.zip
python32.dll
Test.exe
unicodedata.pyd
我用c ++编程.我安装了mingw.我是从mingw网站的标准安装程序安装的.我在mingw32,mingw,mingw64之间感到困惑.有什么区别,如何查看我的版本.当我的程序构建时,我怎么知道创建的可执行文件是32位还是64位?
我有这个运行的代码 .exe
string openEXE = @"C:\Users\marek\Documents\Visual Studio 2012\Projects\tours\tours\bin\Debug\netpokl.exe";
Process b = Process.Start(openEXE);
b.EnableRaisingEvents = true;
b.Exited += (netpokl_Closed);
Run Code Online (Sandbox Code Playgroud)
当它关闭时,它调用方法netpokl_Closed.问题是当我insert into netpokl_Closed command- this.Close()这个异常上升时:Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on
我该如何解决?谢谢你的时间和答案.
我有一个.exe文件,我需要在创建文件后运行.文件已成功创建,之后我使用以下代码运行该.exe文件:
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.FileName = pathToMyExe;
processInfo.ErrorDialog = true;
processInfo.UseShellExecute = false;
processInfo.RedirectStandardOutput = true;
processInfo.RedirectStandardError = true;
Process proc = Process.Start(processInfo);
Run Code Online (Sandbox Code Playgroud)
我也试过一个简单Process.Start(pathToMyExe);但.exe文件没有运行.当我pathToMyExe在Windows资源管理器上手动尝试时,程序正确运行.但不是通过该计划.我看到的是光标转向等待几秒然后恢复正常.所以也没有抛出异常.什么阻止文件?
我想让我的程序可执行.我使用TkInter来编写GUI,我在某处读到你必须将文件保存为.pyw以在程序执行时隐藏控制台.问题是,在使用PyInstaller使其成为可执行文件之后,即使转换的文件是.pyw,控制台也会再次出现.如何在.exe文件中隐藏控制台?
我创建了一个桌面应用程序,使用python 作为后端,使用与 Node JS 集成的 Electron JS 作为前端。
下图是我的项目的文件树。
我能够使用renderer.js文件将 python 与 Electron JS 连接起来,我的应用程序按预期运行。
但我的问题是,我应该如何将这个Python + Electron JS应用程序编译成exe. 我知道pyinstaller可用于将 python 文件编译为exe. 请让我知道如何编译这个python + electron JS应用程序。
提前致谢。
之前已经问过这个问题,我似乎无法使我的PyInstaller正常工作.我在mainscript.py文件中调用了以下代码:
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
Run Code Online (Sandbox Code Playgroud)
当我运行py文件(在IDLE中)时,我的应用程序运行完美并加载所有数据文件.但是,当我用PyInstaller 2.1(一种文件方法)捆绑它时,我在exe构建后得到以下错误:
Traceback (most recent call last):
File "<string>", line 37, in <module>
WindowsError: [Error 3] The system cannot find the path
specified: 'C:\\Users\\Me\\AppData\\Local\\Temp\\_MEI188722\\eggs/*.*'
Run Code Online (Sandbox Code Playgroud)
有谁知道我哪里出错了?谢谢!
**编辑**
这正是我想要做的.
我的主脚本有一个设置(导入),如下所示.基本上我希望能够在其中包含Matplotlib,Basemap和资源路径:
import os,sys
import matplotlib
matplotlib.use('WX')
import wx
from matplotlib.backends.backend_wx import FigureCanvasWx …Run Code Online (Sandbox Code Playgroud) exe ×10
python ×5
c# ×2
build ×1
compilation ×1
cx-freeze ×1
electron ×1
executable ×1
explorer ×1
mingw ×1
nuget ×1
pyinstaller ×1
python-3.5 ×1
tkinter ×1
winapi ×1
windows ×1
winforms ×1