python - 将字符串作为资源嵌入

标签 python c windows string resources

我正在编写一个 DLL,我想在编译后向它添加一些字符串作为嵌入式资源。

为此,我使用了类似于以下内容的 Python 脚本:

hRes = win32api.BeginUpdateResource(myFile, 0)
win32api.UpdateResource(hRes, win32con.RT_STRING, 409, buf, 1033)
win32api.EndUpdateResource(hRes, 0)

这似乎有效,我可以使用我的十六进制编辑器在 PE 中看到字符串。

当我的 Dll 尝试使用 LoadString() 将该字符串拉回时,就会出现问题。

调用是这样的:

LoadString(myDll, 409, someBuf, lenOfBuf);

而且我的程序似乎在 LoadString() 调用中取消对错误指针的引用。

我的问题在于我是如何添加或拉出字符串的吗?谁能指出执行这两个步骤的示例代码?

编辑:为此我更愿意使用 Win32 API。

最佳答案

您可以手动执行此操作,方法是获取 DLL,将要存储的数据附加到其中,然后是一个包含附加数据大小(以字节为单位)的 4 字节整数。

现在,如果你想读取数据,读取文件的最新 4 个字节,将其解释为整数(观察字节顺序),然​​后从文件末尾读取该字节数(如果bytes 是你从 END - N - 4END - 4 读取的 N。

关于python - 将字符串作为资源嵌入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820616/

相关文章:

python - python 中 lambda 的奇怪用法

c - Eclipse CDT插件问题

c++ - MSBuild.exe 不并行构建项目

windows - 如何使用 Spreadsheet::WriteExcel 从 MSSQL Server nvarchar 列输出欧元符号

python - sklearn : Turning off warnings

python - 使用 for 循环获取行数

c - 在 Linux 中公开共享库的自定义位置的最佳方法

java - 如何在我的主类中使用 SWIGTYPE_p_CHAR 类?

windows - 是否有任何性能测试可用于 Direct2D?

python - 多处理—线程池内存泄漏?