首页
社区
课程
招聘
请问在汇编语言中如何使用GDI+?
发表于: 2006-12-12 22:29 7523

请问在汇编语言中如何使用GDI+?

2006-12-12 22:29
7523
近来编程中需要显示许多图片,通过比较,发现在保持不失真的情况下,基本上以TIF格式的图片体积为最小,PNG格式的次之,JPG格式的文件也比较大,且失真较严重,所以程序中打算采用TIF或PNG格式。可是想显示这两种格式文件的方法我还没有掌握,查网上的资料(见http://dev.yesky.com/255/2190255_4.shtml,可见用 GDI+ 来实现是相当简单的),发现用 GDI+ 来实现应该比较简单,可是在汇编语言中如何使用GDI+呢?或者如何将那段代码转成汇编源代码?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
2
好像RadASM网站上有个GDI+的库。
2006-12-12 22:37
0
雪    币: 1946
活跃值: (263)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
3
那啥..好象GDI+只有托管代码才能使用的吧?
2006-12-12 22:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
难怪,偶以前找来找去找不到,原来,这个库还没出啊,昏倒,
白忙了
2006-12-13 14:50
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
库有,但我不知道怎样在汇编语言中使用,请有经验的大侠们指教。
上传的附件:
2006-12-13 19:45
0
雪    币: 248
活跃值: (1121)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
附加EXE,先看看。(懒于用C生成)
2006-12-15 10:40
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
我初步分析,可能思路应该是这样的:

根据VC++头文件写出相应的汇编语言程序头文件,然后在汇编语言中调用里在的函数。现在的难点在于头文件很多,而且有一些东西不知道该转成什么,如友类等。
2006-12-16 20:37
0
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
8
已经说了RadASM网站上有个MASM的GDI+的库,不需要你再去转换什么C的头文件。至于怎么用,你自己研究吧,里面有个例子:
上传的附件:
2006-12-16 22:30
0
雪    币: 248
活跃值: (1121)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
反汇编后再作。
没人用C生成一下EXE?
2006-12-16 22:39
0
雪    币: 214
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
masm可以使用gdi+,包含需要的库文件,然后gdi+的用法参考msdn。
发布时候带上gdiplus.dll(win2k).
2006-12-17 09:35
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
11
非常感谢 CCDebuger 大侠 !

    我没去过RadASM网站,惭愧。我好好看一下这个例子吧。
2006-12-17 10:27
0
雪    币: 297
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
12
楼主可以看看sdk中的
PlatformSDK\Include\GdiPlusFlat.h的导出函数定义以及相关的你要用的类的定义。
比如GraphicsPath类的构造函数:
    GraphicsPath(IN const PointF* points,
                 IN const BYTE* types,
                 IN INT count,
                 IN FillMode fillMode = FillModeAlternate)
    {
        nativePath = NULL;
        lastResult = DllExports::GdipCreatePath2(points,
                                                 types,
                                                 count,
                                                 fillMode,
                                                 &nativePath);
    }
这里这个DllExports名字空间中的函数都是由该头文件来定义的。
GDI+中大部分类用到的函数都是在这个头文件中定义的。
即使有一部分不需要直接调用这些函数的,也可以自己简单地实现,关键是要看下你要用的类的具体的定义,记住他所真正实现需要的函数,然后从DLL中获取就可以了。
2006-12-17 12:00
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
OleLoadPicture可以解码TIF图像,使用系统自带的DLL.
不过为什么一定要用汇编呢,访问COM很麻烦的.
2006-12-17 12:51
0
游客
登录 | 注册 方可回帖
返回
//