关于OCX中使用GDI+的问题

dinjay 2012-07-17 01:54:14
使用VC6或者VS2005创建mfc activeX的程序,在这个ocx里我需要调用GDI+来进行绘图。
但是在编译的时候会一直卡在注册那里,如下:
Generating Code...
Linking...
Creating library Debug/OCXLib111.lib and object Debug/OCXLib111.exp
OCXLib111.exp : warning LNK4070: /OUT:OCXLIB.OCX directive in .EXP differs from output filename "OCXLib111.ocx"; ignoring directive
Registering ActiveX Control...

排查一下代码,使用GDI+时,我在stdafx.h里加入了必要的GDI+头文件:

#include <comdef.h>//初始化一下com口
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#include "GdiPlus.h"
using namespace Gdiplus;
#endif
#pragma comment(lib,"gdiplus.lib")

但是问题就出在这里,using namespace Gdiplus;这句话加入编译能过,但是会出现卡在Registering ActiveX Control...这里,如果不加入using namespace Gdiplus;编译则过不去。2005和vc6我都试过了,全是这个问题。
...全文
137 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lllxy 2012-07-18
  • 打赏
  • 举报
回复
初始化的位置应该没有限定,可能是其他的问题。
dinjay 2012-07-17
  • 打赏
  • 举报
回复
解决了,GDI+的初始化和卸载不能放在app类中。目前我把初始化放在ctrl的OnResetState里,然后卸载放在DestroyWindow里,编译是OK了,不知道这样对不对。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧