VC2005 编译MSDN中的例子 出来一大堆错误~不明白啊

狂放之歌 2006-03-29 09:13:42
/*
错误都定位在 GdiplusHeaders.h
GdiplusFlat.h
GdiplusPath.h
GdiplusMetafile.h
这些 都是安装文件啊~~哪里出了毛病啊?
121个..error!!
有三个是 VC2005 取消了默认类型 而且将这个作为错误发出
*/
#include <windows.h>
#include <stdio.h>
#include <gdiplus.h>
using namespace Gdiplus;

INT GetEncoderClsid(const WCHAR* format, CLSID* pClsid); // helper function


int _tmain(int argc, _TCHAR* argv[])
{
// Initialize GDI+.
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

CLSID encoderClsid;
EncoderParameters encoderParameters;
ULONG quality;
Status stat;

// Get an image from the disk.
Image* image = new Image( _T("SmartCUT.bmp") );

// Get the CLSID of the JPEG encoder.
GetEncoderClsid(L"image/jpeg", &encoderClsid);

// Before we call Image::Save, we must initialize an
// EncoderParameters object. The EncoderParameters object
// has an array of EncoderParameter objects. In this
// case, there is only one EncoderParameter object in the array.
// The one EncoderParameter object has an array of values.
// In this case, there is only one value (of type ULONG)
// in the array. We will let this value vary from 0 to 100.

encoderParameters.Count = 1;
encoderParameters.Parameter[0].Guid = EncoderQuality;
encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong;
encoderParameters.Parameter[0].NumberOfValues = 1;

// Save the image as a JPEG with quality level 0.
quality = 0;
encoderParameters.Parameter[0].Value = &quality;
stat = image->Save(L"Shapes001.jpg", &encoderClsid, &encoderParameters);

if(stat == Ok)
wprintf(L"%s saved successfully.\n", L"Shapes001.jpg");
else
wprintf(L"%d Attempt to save %s failed.\n", stat, L"Shapes001.jpg");

// Save the image as a JPEG with quality level 50.
quality = 50;
encoderParameters.Parameter[0].Value = &quality;
stat = image->Save(L"Shapes050.jpg", &encoderClsid, &encoderParameters);

if(stat == Ok)
wprintf(L"%s saved successfully.\n", L"Shapes050.jpg");
else
wprintf(L"%d Attempt to save %s failed.\n", stat, L"Shapes050.jpg");

// Save the image as a JPEG with quality level 100.
quality = 100;
encoderParameters.Parameter[0].Value = &quality;
stat = image->Save(L"Shapes100.jpg", &encoderClsid, &encoderParameters);

if(stat == Ok)
wprintf(L"%s saved successfully.\n", L"Shapes100.jpg");
else
wprintf(L"%d Attempt to save %s failed.\n", stat, L"Shapes100.jpg");

delete image;
GdiplusShutdown(gdiplusToken);

return 0;
}

...全文
217 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
DrSmart 2006-03-30
  • 打赏
  • 举报
回复
呵呵
狂放之歌 2006-03-30
  • 打赏
  • 举报
回复
将这个注释掉 头文件包含没有错误了

//#define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料

另外xing_xing_xing(ζ未名ζ) 的方法也有效..针对MFC/SDK通杀

from msdn:

Visual C++ Concepts: Building a C/C++ Program
Faster Builds and Smaller Header Files

To speed the build process, Visual C++ provides the following definitions that reduce the size of the Win32 header files by excluding some of the less common APIs:

* VC_EXTRALEAN
* WIN32_LEAN_AND_MEAN

VC_EXTRALEAN defines WIN32_LEAN_AND_MEAN and a number of NOservice definitions, such as NOCOMM and NOSOUND. (For a list of NOservice definitions, see the header file Windows.h and the MFC header file afxv_w32.h.)

Applications created with the Visual C++ application wizards use VC_EXTRALEAN automatically. You can manually define VC_EXTRALEAN in legacy MFC applications to speed their build process.

Non-MFC applications can define WIN32_LEAN_AND_MEAN and applicable NOservice definitions to reduce build times.

Trying to use an API excluded by these definitions causes compiler errors. If a program that defines NOCOMM or VC_EXTRALEAN tries to use PurgeComm, for example, the following errors result:

error C2065: 'PurgeComm' : undeclared identifier
error C2064: term does not evaluate to a function

十分感谢大家~
yuanss71 2006-03-29
  • 打赏
  • 举报
回复
头文件包含了两个相同的

低版本的 在前面
先检测到的版本的就出现这样的问题

调整 include 中的路径次序 可以解决
rageliu 2006-03-29
  • 打赏
  • 举报
回复
应该是头文件的包含问题
DentistryDoctor 2006-03-29
  • 打赏
  • 举报
回复
不应该吧,头文件有问题?
xing_xing_xing 2006-03-29
  • 打赏
  • 举报
回复
After putting the following two lines before #include'ing <gdiplus.h>

#define _AFXDLL
#include <afxwin.h>

参考
http://groups.google.com/group/microsoft.public.dotnet.framework.drawing/browse_thread/thread/f0febf272a128235/9051da5d9b17210d%239051da5d9b17210d

狂放之歌 2006-03-29
  • 打赏
  • 举报
回复
...刚才又了一下~

main中 什么代码也不加,,只要 #include <gdiplus.h>
就是 121error 14 warning
DrSmart 2006-03-29
  • 打赏
  • 举报
回复
sdk版本问题?????????????
狂放之歌 2006-03-29
  • 打赏
  • 举报
回复
还有很多~~
狂放之歌 2006-03-29
  • 打赏
  • 举报
回复
------ 已启动生成: 项目: BMPtoJPEG, 配置: Release Win32 ------
正在编译...
stdafx.cpp
正在编译...
BMPtoJPEG.cpp
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusImaging.h(67) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusImaging.h(67) : error C2440: 'initializing' : cannot convert from 'const char [37]' to 'int'
There is no context in which this conversion is possible
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusImaging.h(67) : error C2146: syntax error : missing ';' before identifier 'IImageBytes'
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusImaging.h(67) : error C2470: 'IImageBytes' : looks like a function definition, but there is no parameter list; skipping apparent body
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusImaging.h(67) : error C2059: syntax error : 'public'
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusImaging.h(246) : error C2146: syntax error : missing ';' before identifier 'id'
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusImaging.h(246) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusImaging.h(246) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusHeaders.h(384) : error C2143: syntax error : missing ')' before '*'
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusHeaders.h(384) : error C2143: syntax error : missing ';' before '*'
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusHeaders.h(384) : error C2460: 'Gdiplus::Image::IStream' : uses 'Gdiplus::Image', which is being defined
f:\program files\microsoft visual studio 8\vc\platformsdk\include\GdiplusHeaders.h(372) : see declaration of 'Gdiplus::Image'
菜牛 2006-03-29
  • 打赏
  • 举报
回复
把错误信息贴出来。
源码直接下载地址: https://pan.quark.cn/s/b2e30c4b4277 依据所提供的文件资料,可以总结出以下核心内容: 1. 华硕玩家国度x79 R4G主板属于高端级别的主板,归类于华硕玩家国度系列中的RAMPAGE IV GENE型号。该主板主要面向高端用户及游戏爱好者,具有卓越性能的特点。 2. 华硕玩家国度x79 R4G主板的使用指南采用简体中文版本,并以PDF格式发布。用户手册全面地阐述了该主板的操作方法和各项功能。 3. 版权声明明确指出,本手册包含的所有内容均受到著作权法的保护。未经华硕电脑股份有限公司(简称“华硕”)的许可,禁止进行任何形式的复制、剽窃、翻译或分发。 4. 免责声明具体说明,华硕提供的用户手册依照其发布时的状态呈现,不提供任何明示或暗示的保证。用户使用手册所面临的风险需自行承担,且华硕不对使用手册后的任何结果或信息的精确性或可靠性提供保证。 5. 用户手册中强调,使用本手册后可能引发的风险和损失,涵盖但不限于利益损失、业务中断、数据遗失或其他经济上的损失,华硕及其授权人员、雇员等均不承担相应责任。 6. 华硕拥有随时更新用户手册的权力。当产品规格或驱动程序发生变化时,用户手册将进行相应的修订。用户可以通过华硕的客户服务网站或直接联络华硕电脑客户关怀中心以获取最新版本的信息。 7. 第三方产品名称或内容的所有权和知识产权归属于各自的所有者,并受到相关法律法规的保护。 8. 在华硕的保修政策中,若产品经历过未经华硕授权的维修、规格调整、部件更换或其他未授权操作,或者产品序列号模糊不清或遗失,产品将不再享受华硕的保修和服务。 9. 华硕供应的主板及显卡产品在中国大陆地区(不包括港澳台地区)实施三年免费保修服务及全国联保服务...
内容概要:本文围绕2026年高教社杯全国大学生数学建模竞赛B题“无线电干扰源的快速自动定位与清除”提供了一套完整的数学建模、算法实现与论文撰写的免费资源。该资源由“荔枝科研社”出品,依托一个涵盖智能优化算法、机器学习、深度学习、信号处理、通信技术、电力系统管理等多个前沿领域的综合性科研资源共享平台。文档以MATLAB和Python为主要工具,聚焦于复杂工程问题的建模与求解,尤其在干扰源定位、状态估计、路径规划及优化调度等方面具有突出的应用价值。资源不仅包含竞赛题目解析,还提供了大量可复现的代码实例与技术文档,旨在帮助用户深入理解算法原理并提升科研实践能力。; 适合人群:具备一定编程基础,特别是熟练掌握MATLAB或Python语言的本科生、研究生,正在备战数学建模竞赛的学生,以及从事通信、信号处理、电力系统等相关领域研究的科研人员和技术开发者。; 使用场景及目标:①为参赛学生提供B题的完整解题思路、模型构建方法与代码实现路径,加速竞赛准备进程;②为科研工作者提供高质量、可复现的算法代码与技术参考,推动智能算法在无线通信、应急响应、环境监测等实际场景中的应用研究;③促进跨学科技术融合,支持教学、科研与工程实践的协同发展。; 阅读建议:建议读者结合文中提供的网盘链接与《荔枝科研社资源整理目录》系统性地查阅资料,优先选择与自身研究方向契合的技术模块进行深入学习,并动手运行代码以验证算法效果。同时推荐关注微信公众号“荔枝科研社”以获取持续更新的技术内容与社群支持。

19,463

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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