gdi问题请教:LINK : warning LNK4089: all references to "GDI32.dll" discarded by /OPT:

Ahh_Freshmeat 2013-01-22 10:24:28
因为要转换图片 用到了GDI 但是出现了以下错误

1、编译提示如下警告
:LINK : warning LNK4089: all references to "GDI32.dll" discarded by /OPT:

该问题已通过以下方法解决:
在release版的project->setting->link下的project options
添加/IGNORE:4089


2、编译没错 无法运行 但是进程里面有程序

我把GDI的初始化语句注释掉就好了,请问是什么原因呢?


//初始化 注释掉以下三句就可以运行了
// GdiplusStartupInput m_gdiplusStartupInput;
// GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);
//Gdiplus::GdiplusShutdown(m_gdiplusToken);
...全文
186 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sumos 2013-01-22
  • 打赏
  • 举报
回复
引用 7 楼 thdxs 的回复:
再请教下 gdiplus.dll这个动态库应该放那里呢 引用 4 楼 lile1234_show 的回复:1.GdiplusStartupInput m_gdiplusStartupInput; GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);……
gdiplus.dll存在于系统目录中。如果你是要发布,和exe放在一起。
Ahh_Freshmeat 2013-01-22
  • 打赏
  • 举报
回复
再请教下 gdiplus.dll这个动态库应该放那里呢
引用 4 楼 lile1234_show 的回复:
1.GdiplusStartupInput m_gdiplusStartupInput; GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL); 2. Gdiplus::GdiplusShutdown(m_gdiplusToken); 可能这1,2放的位置有关,你自……
Ahh_Freshmeat 2013-01-22
  • 打赏
  • 举报
回复
我是1放在了构造函数了初始化 2放在了析构函数里面销毁
引用 4 楼 lile1234_show 的回复:
1.GdiplusStartupInput m_gdiplusStartupInput; GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL); 2. Gdiplus::GdiplusShutdown(m_gdiplusToken); 可能这1,2放的位置有关,你自……
lee_鹿游原 2013-01-22
  • 打赏
  • 举报
回复
//GDI+以前写的一个存档部分例子.. int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { GdiplusStartupInput gdiplus; ULONG_PTR gditoken; GdiplusStartup(&gditoken,&gdiplus,NULL); UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); // TODO: 在此放置代码。 MSG msg; HACCEL hAccelTable; // 初始化全局字符串 LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_GAME, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // 执行应用程序初始化: if (!InitInstance (hInstance, nCmdShow)) { return FALSE; } hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_GAME)); //// 主消息循环: ZeroMemory(&msg,sizeof(MSG)); // game=new CGame(hInstance,hWnd); while (msg.message!=WM_QUIT) { if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){ TranslateMessage(&msg); DispatchMessage(&msg); } now=timeGetTime(); //获取用户输入 game->ProcessInput(); game->Logic(now); //画 } delete game; GdiplusShutdown(gditoken); return (int) msg.wParam; }
lee_鹿游原 2013-01-22
  • 打赏
  • 举报
回复
1.GdiplusStartupInput m_gdiplusStartupInput; GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL); 2. Gdiplus::GdiplusShutdown(m_gdiplusToken); 可能这1,2放的位置有关,你自己查看相关资料或者代码。
Ahh_Freshmeat 2013-01-22
  • 打赏
  • 举报
回复
注释之后 可以显示 但是运行死机
引用 2 楼 lile1234_show 的回复:
GDI+的环境配置没问题? // Gdiplus::GdiplusShutdown(m_gdiplusToken);先把这句注释试试。
lee_鹿游原 2013-01-22
  • 打赏
  • 举报
回复
GDI+的环境配置没问题? // Gdiplus::GdiplusShutdown(m_gdiplusToken);先把这句注释试试。
Ahh_Freshmeat 2013-01-22
  • 打赏
  • 举报
回复
第二个问题怎么办啊 在线等

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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