liyifei123 2019-10-09 21:15 采纳率: 0%
浏览 60

RichTexBox发送图片时xp里正常,win10里为空

public string GetImageInfo()
{
REOBJECT reObject = new QQIMLib.ExtRichTextBox.REOBJECT();
for (int i = 0; i < this.richEditOle.GetObjectCount(); i++)//循环访问richbox中所有图片或对像
{
this.richEditOle.GetObject(i, reObject, QQIMLib.ExtRichTextBox.GETOBJECTOPTIONS.REO_GETOBJ_ALL_INTERFACES);
imageInfo += reObject.cp.ToString() + "," + this.findPic(reObject.dwUser).ImageMD5 + "|";
}
return imageInfo;
}

this.findPic(reObject.dwUser).ImageMD5 总返回空值。RichTexBox发送图片时xp里正常,win10里为空,不知道怎么搞了,有大佬知道原因的告诉一下。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-29 23:10
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可能由多种因素引起,以下是一些可能导致问题的原因和解决方法:

    原因分析:

    1. 图片路径不正确:确保你的图片文件在正确的路径下,并且使用了正确的扩展名(例如,PNG、JPG等)。
    2. 权限问题:如果你尝试从Win10获取图片信息时遇到问题,可能是由于你没有足够的权限来读取或写入特定文件夹或文件。检查是否有适当的文件权限设置。
    3. 网络连接问题:如果在XP系统上可以正常工作,在Win10上出现问题,可能是因为网络连接有问题或者服务器无法响应请求。
    4. API错误:检查QQIMLib.ExtRichTextBox.REOBJECT类是否被正确初始化并正确调用。
    5. 内存泄漏:确保你的程序不会因为不必要的内存分配而导致性能问题。

    解决方案:

    1. 检查图片路径:确保图片文件路径正确无误,包括文件名称和文件扩展名。
    2. 增加权限:通过安全策略调整,确保只有应用程序能够访问特定目录下的文件。
    3. 测试网络连接:检查你的网络连接状态,确保没有网络中断或其他异常情况。
    4. 检查API调用:查看REOBJECT对象是否正确创建并正确赋值,确保所有的操作都在适当的时间范围内执行。
    5. 释放内存:在处理完图片数据后,及时释放不再使用的内存以避免内存泄漏。

    示例代码:

    // 假设你的图片路径为"C:\test.jpg"
    std::wstring path = L"C:\\test.jpg";
    HBITMAP hBitmap;
    if (!LoadImage(NULL, path.c_str(), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE))
    {
        // 图片加载失败
    }
    else
    {
        HDC hdc = CreateCompatibleDC(NULL);
        HBITMAP hNewBmp = CreateCompatibleBitmap(hdc, 800, 600);
        SelectObject(hdc, hNewBmp);
        DeleteDC(hdc);
        // 使用hNewBmp作为参数传递给GetImageInfo函数
    }
    
    bool ret = GetImageInfo(hNewBmp);
    

    请注意,上述代码是示例代码,你需要根据实际的环境进行修改。

    评论

报告相同问题?