gpt4 book ai didi

string - 具有 PWideChar 参数的函数仅采用第一个字符

转载 作者:行者123 更新时间:2023-12-03 15:22:41 24 4
gpt4 key购买 nike

我刚刚遇到了一个奇怪的问题。我正在尝试将模型加载到 OpenGL,并在加载纹理的部分使用 auxDIBImageLoadA(dibfile:PWideChar)功能。这是我的代码调用它

procedure CreateTexture(var textureArray: array of UINT; strFileName: string; textureID: integer);       // Vytvožení textury
var
pBitmap: PTAUX_RGBImageRec;
begin
if strFileName = '' then exit;
MessageBox(0,PWideChar(strFileName),nil,SW_SHOWNORMAL);
pBitmap := auxDIBImageLoadA(PWideChar(strFileName));
if pBitmap = nil then exit;
...

MessageBox 只是用于控制。发生的情况是这样的:我运行应用程序,一个带有 "FACE.BMP" 的框出现。好的。但后来我收到一条错误消息 "Failed to open DIB file F" 。当我设置 stFileNamexFACE.BMP ,我得到一个"Failed to open DIB file x" 。因此,由于某种原因,该函数似乎只采用第一个字符。

我错过了什么吗?我使用的是 glaux.dll,我从不同的来源下载了大约 5 次,所以它应该没有错误(我希望每个 OpenGL 站点都引用它)。

最佳答案

这很奇怪,以“A”结尾的函数通常采用 PAnsiChar 指针,而以“W”结尾的函数则采用 PWideChar 指针。是否还有 auxDIBImageLoadW 调用?如果有,请使用该值,或者尝试使用 PAnsiChar,因为如果将您传递的 PWideChar(每个位置两个字节)评估为 1 字节字符串,则它看起来就像一个字符长的字符串。

关于string - 具有 PWideChar 参数的函数仅采用第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315353/

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