递归火山软件开发平台

标题: 【已解决】 接收到未经处理的严重异常,代码为: 0xE06D7363 [打印本页]

作者: mogo    时间: 2025-11-28 11:14
标题: 【已解决】 接收到未经处理的严重异常,代码为: 0xE06D7363
本帖最后由 mogo 于 2025-11-29 15:03 编辑

我想只录制鼠标周围,这样最终的文件应该会比较小。使用cximage转出的gif不管怎么弄每帧间隔都是1秒,而且红色的指示线变成黑色了。所以想试试gdi+。现在问题是在 “系统热键类_热键被按下” 的方法中加入代码后启动就报错,为什么还未执行到这里就报错呢?
(, 下载次数: 123) (, 下载次数: 118) (, 下载次数: 2)

作者: Xelloss0618    时间: 2025-11-28 14:19
主要问题在 GdiplusStartupInput 结构体上,这玩意带构造函数,不是纯C的结构体了,不能用“视窗.结构类”封装,目前只能用别名封装或者全部在嵌入语句里调用。

  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 类 GdiplusStartupInput <公开 @视窗.外部头文件 = "gdiplus.h" @别名 = "Gdiplus::GdiplusStartupInput" @别名类型 = 本地类>
  3. {
  4.     变量 GdiplusVersion <公开 类型 = 整数 @输出名 = "GdiplusVersion">
  5.     变量 SuppressBackgroundThread <公开 类型 = 逻辑型 @输出名 = "SuppressBackgroundThread">
  6.     变量 SuppressExternalCodecs <公开 类型 = 逻辑型 @输出名 = "SuppressExternalCodecs">
  7. }
复制代码


GdiplusStartup里的参数input改成变整数,然后用“取变量地址”传参。

作者: mogo    时间: 2025-11-29 10:53
Xelloss0618 发表于 2025-11-28 14:19
主要问题在 GdiplusStartupInput 结构体上,这玩意带构造函数,不是纯C的结构体了,不能用“视窗.结构类” ...

感谢解惑。问题依旧存在,注释掉取编码器数量的这一行新旧代码都可以成功初始化。但我还是想不明白为什么没有执行到这里就报错了,为什么呢?
(, 下载次数: 102)
(, 下载次数: 104)
(, 下载次数: 106)



作者: Xelloss0618    时间: 2025-11-29 11:47
看了一下,GetImageEncodersSize 在DLL里的导出函数是 GdipGetImageEncodersSize,找不到函数自然就崩了
作者: mogo    时间: 2025-11-29 15:02
Xelloss0618 发表于 2025-11-29 11:47
看了一下,GetImageEncodersSize 在DLL里的导出函数是 GdipGetImageEncodersSize,找不到函数自然就崩了 ...

原来如此,非常感谢!!!




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4