您好,
如何在C#中使用UpdateResource用P / Invoke的?
疗法是任何其他功能,允许在C#,像UpdateResource EXE文件更新?
我用google搜索,但我不能找到我想要什么?| chlebta |戴夫Kreskowiak:此功能需要其他功能夫妇为了工作返回的数据。它会更新的资源。EXE文件(有一些限制),但它不会更新。EXE文件的资源,目前正在执行。
所以,如果你正在寻找保存在自己的资源。EXE的数据,你不能这样做。
例如使用]。
签名的UpdateResource。
; [DllImport("kernel32.dll", SetLastError = true)]
static extern bool UpdateResource(IntPtr hUpdate, string lpType, string lpName, ushort wLanguage,
IntPtr lpData, uint cbData);
You might access this API like,
IntPtr handleExe = BeginUpdateResource(exeFilePath, false);
CultureInfo currentCulture = CultureInfo.CurrentCulture;
int pid = ((ushort)currentCulture.LCID) & 0x3ff;
int sid = ((ushort)currentCulture.LCID) >> 10;
ushort languageID = (ushort)((((ushort)pid) << 10) | ((ushort)sid));
GCHandle iconHandle = GCHandle.Alloc(resourceData, GCHandleType.Pinned);
然后你可以称之为UpdateResource通过发送这些参数。
如果你想知道每个参数的解释,你可能会看到{A}]