【已解决】 接收到未经处理的严重异常,代码为: 0xE06D7363
本帖最后由 mogo 于 2025-11-29 15:03 编辑我想只录制鼠标周围,这样最终的文件应该会比较小。使用cximage转出的gif不管怎么弄每帧间隔都是1秒,而且红色的指示线变成黑色了。所以想试试gdi+。现在问题是在 “系统热键类_热键被按下” 的方法中加入代码后启动就报错,为什么还未执行到这里就报错呢?
主要问题在 GdiplusStartupInput 结构体上,这玩意带构造函数,不是纯C的结构体了,不能用“视窗.结构类”封装,目前只能用别名封装或者全部在嵌入语句里调用。
<火山程序 类型 = "通常" 版本 = 1 />
类 GdiplusStartupInput <公开 @视窗.外部头文件 = "gdiplus.h" @别名 = "Gdiplus::GdiplusStartupInput" @别名类型 = 本地类>
{
变量 GdiplusVersion <公开 类型 = 整数 @输出名 = "GdiplusVersion">
变量 SuppressBackgroundThread <公开 类型 = 逻辑型 @输出名 = "SuppressBackgroundThread">
变量 SuppressExternalCodecs <公开 类型 = 逻辑型 @输出名 = "SuppressExternalCodecs">
}
GdiplusStartup里的参数input改成变整数,然后用“取变量地址”传参。
Xelloss0618 发表于 2025-11-28 14:19
主要问题在 GdiplusStartupInput 结构体上,这玩意带构造函数,不是纯C的结构体了,不能用“视窗.结构类” ...
感谢解惑。问题依旧存在,注释掉取编码器数量的这一行新旧代码都可以成功初始化。但我还是想不明白为什么没有执行到这里就报错了,为什么呢?
看了一下,GetImageEncodersSize 在DLL里的导出函数是 GdipGetImageEncodersSize,找不到函数自然就崩了 Xelloss0618 发表于 2025-11-29 11:47
看了一下,GetImageEncodersSize 在DLL里的导出函数是 GdipGetImageEncodersSize,找不到函数自然就崩了 ...
原来如此,非常感谢!!!
页:
[1]