【发布时间】:2016-01-29 20:13:57
【问题描述】:
我正在尝试使用 LoadIconWithScaleDown API。 我正在使用 Delphi 2007,我编写了一个简单的示例程序,在单击按钮时我调用 COMMCTRL.LoadIconWithScaleDown。我尝试了各种组合,实例为零,实例设置为 hInstance,对于第二个参数,我尝试传递当前模块名称,MAKEINTRESOURCE(IDI_APPLICATION),......总是没有运气,我总是得到一个返回值 -2147467263 .知道我做错了什么吗?
根据 David 的建议进行了编辑,以展示我如何尝试调用 API。
procedure TForm31.Button1Click(Sender: TObject);
var moduleName : string;
var moduleNameW : widestring;
var retVal : HRESULT;
var iconHandle : HICON;
begin
iconHandle := 0;
SetLength( moduleName, 1024);
WINDOWS.GetModuleFileName(
hInstance,
PCHAR(moduleName),
LENGTH(moduleName));
moduleNameW := moduleName;
retVal := COMMCTRL.LoadIconWithScaleDown(
HINSTANCE,
PWidechar(moduleNameW),
image1.width,
image1.height,
iconHandle);
end;
【问题讨论】:
-
您做错了什么是在不包含minimal reproducible example的情况下询问有关您的代码的问题
-
我理解您的评论大卫,但我尝试了各种组合,但都没有奏效。如果您只有一个有效的,我将不胜感激。我将编辑我的消息以举例说明我的尝试。
-
您根本不检查错误。下一步阅读文档。听起来很明显,但你还没有做到。仔细阅读。两次。您传递的资源名称是错误的,这是我的猜测。错误会告诉你。再次,阅读文档。这就是他们的目的。
-
我所要求的只是一个使用该 API 取得成功的人的 3 行示例。我确实阅读了文档并尝试了各种组合,但没有任何运气。
-
这不是 Stack Overflow 的意义所在。如果您需要聘请程序员,则需要寻找其他地方。如果您无法理解此功能的简单文档,那么我们如何提供帮助。我们在这里帮助您和其他人学习,而不是完成您的工作。我已经告诉过你该怎么做。检查错误。传递正确的资源名称。