gpt4 book ai didi

com - 如何获取 Windows SDK 中的资源 DLL 代码示例以编译和运行?

转载 作者:行者123 更新时间:2023-12-01 04:19:53 25 4
gpt4 key购买 nike

我目前正在尝试在 Windows Server 2003 和 2008 上构建资源 DLL。我目前正在使用随 Windows SDK 提供的资源 DLL 代码示例,但我无法让它们工作。

在 Windows Server 2008 上,我成功编译了 Windows 7 SDK ClipBook Server 示例,但无法让它在集群中正常工作。当我使用“cluster restype/create/dll”将资源作为资源类型插入集群时,它可以工作,但是资源以未知类型而不是剪贴簿服务器类型列出,因为我认为它应该具有在资源 DLL 的代码中定义的类型。
我也成功地创建了这种类型的资源,但我永远无法让它上​​线。我总是得到错误:

发生系统错误 5079 (0x000013d7)。
指定的节点不支持这种类型的资源。这可能是由于版本不一致或此节点上缺少资源 DLL。


尽管资源位于集群中的所有节点上,包括我尝试启动资源的节点,但这是事实。

在 Windows Server 2003 上,我使用的是 Platform SDK 5.2 版,我什至无法编译 ClipBook Server Resource DLL 代码示例。我总是得到 MIDL1001 错误提示无法打开文件 cluscfgserver.idl .我将文件位置的路径添加到项目的包含路径中。那没有用。当我尝试对文件的路径进行硬编码时,在尝试链接该文件时出现了几个链接器错误。

如果有人对这些问题有所了解,我将不胜感激。

最佳答案

这些例子已经过时了。为了使类似的“文件共享示例”正常工作,我必须经历以下几件事:

  • 将项目转换为 x64(据说 32 位资源仍然可以工作,但我无法验证)
  • 将模块定义文件 (.def) 添加到链接器输入属性页,以便公开启动功能
  • 代码中有几个地方使用 CompareString 来检查资源类型名称,成功时预期为 0,但它实际上返回 CSTR_EQUAL (3)。
  • 这可能就是您获得“(未知类型)”名称的原因。
  • 要注册资源扩展,cluster.exe 不会接受 dll 名称中的空格,所以在我的情况下,我必须使用 cluster /REGADMINEXT:'FILESH~2.dll'
  • 仅支持属性表扩展界面,其他所有内容(上下文菜单、向导)自 Server 2008 起已被删除
  • 检查资源类型“ClipBook Server”的扩展 DLL stdafx.cpp 源。它应该是“剪贴簿服务器示例”:const WCHAR g_wszResourceTypeNames[] = L"ClipBook Server Sample\0"
  • 关于com - 如何获取 Windows SDK 中的资源 DLL 代码示例以编译和运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319214/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com