VC++
北京的雾霾天
平民百姓
展开
-
VC的MFC程序VS2008与VS2005的两个不同点
1:GDI+使用 VS2008新建立一个MFC的应用程序,把MFC类库以静态方式引用,使用Release模式编译,发现文件1.65M左右。把程序Copy到一个干净的Win2000上,报错为找不到GdiPlus类型库,看来在VS2008中MFC里引用了GDI+的内容。 而使用VS2005同样建立一个MFC的程序,同样的方式编译后文件大小只有304k,小多了。放到Win2000上可以正常的执行原创 2009-02-17 08:40:00 · 3179 阅读 · 11 评论 -
error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
使用VS2010编译VC++项目的时候可能会出这个问题。据说升级到SP1后可能问题解决,但是下载量太大,目前没有得到证实。网上大多的方法都是说在“清单工具”中将嵌入清单改成“否”,但是这个不一定100%解决问题。我总结了下这个问题的解决方法:1:如果项目是一个动态库,或者说,项目中没有实质的资源文件的时候,将嵌入清单改成“否”是可以解决的。2:如果项目已有了资源文件,将嵌入清单原创 2012-09-14 09:58:39 · 1866 阅读 · 0 评论 -
一句话经典
开心一刻:我只会C++不懂.NET不懂C#,怎么编写.NET程序? 很简单,你照样用你的C++写你的程序,然后测试没有错误后,将编译选项改为/clr,好了,Rebuild,你的程序现在是.NET了。http://www.cppblog.com/mzty/archive/2008/03/12/44280.html C++.net,确实强大!原创 2012-10-22 15:02:57 · 669 阅读 · 0 评论 -
VC.Net的托管与非托管混合编程
http://hi.baidu.com/guo_1017/item/67b9ea33a4db5025b2c0c514VC.Net的托管与非托管混合编程文章来源:卓锐精品之博 http://blog.elitehome.cn作者:华珑这几天一直研究VC.Net的托管与非托管混合编程.Net作为一个非常优秀的开发平台,能让开发人员快速开发界面与应用,但.Net托管代码是可以转载 2012-10-22 16:14:46 · 4103 阅读 · 0 评论 -
修改VS2010的VC.net项目 framework对应版本
在C++/CLI中修改VC++的framework版本,由于VS2010不支持像C#项目文件的那种直接的下拉框模式,我们需要在.vcxproj文件中修改目标版本(TargetFrameWorkVersion)。VS2010中并没有默认的把这个节点添加到项目中,需要手动的添加这个xml节点:1:使用文本编辑器打开.vcxproj文件,找到并修改如下内容: v2.0原创 2012-10-23 09:11:48 · 19771 阅读 · 1 评论 -
VC++.Net的代码折叠
C#中有一个有用的功能,就是指定代码折叠,使用#Region就可以了。但是在VC++.Net里不能直接使用这个命令。经过查找MSDN得知应该如下使用:#pragma region name#pragma endregion comment示例:// pragma_directives_region.cpp#pragma region Region_1void Test()原创 2012-11-26 09:39:48 · 1694 阅读 · 0 评论 -
VC.Net、C#.Net语法上很难想到的几点不同处
1:调用基类构造函数:C#public subclassname(object arg): base(arg){}C++h文件public: subclassname(System::Object^ type);cpp文件subclassname(System::Object^ type): baseclassname(type){}2:重写基类方法:C#原创 2012-12-12 11:13:33 · 1757 阅读 · 0 评论 -
C++ error C2027:使用了未定义类型 类的调用顺序
如果不想犯下面错误最好的做法是,先把每一个类都定义好后,再写函数实现部分(本例中将void A::funcA(B* inB)就放到了最后实现),写在前面的类,需要使用后面的类的时候只需要声明一下(像本例中的class B;放在A类前一样),但使用的时候只能是以指针的形式出现! 注:其实把访问放到实现文件(CPP)中会自然避免这个问题,写到头文件中便不能访问成员且实现的代码也比较多,也不好实现成转载 2013-02-17 13:52:57 · 23275 阅读 · 0 评论 -
.net中实现联合体类型
VC.Net语法: /*表达式元素*/ [System::Runtime::InteropServices::StructLayout( System::Runtime::InteropServices::LayoutKind::Explicit)] ref struct EI { public: [System::Runtime::InteropServices::Fie原创 2013-05-22 15:40:03 · 1098 阅读 · 0 评论 -
__debugbreak()
VC写的DLL类库,在其运行时可能需要附加到进行的进程调试,__debugbreak()方法可以让我们对程序添加断点进行调试,为了方便附加进程,我们一般需要这样设置下更好使用:控制面板\系统和安全\操作中心\问题报告设置(选上)每次发生问题时,在检查解决方案之前先询问我(&M) 这样当遇到这个断点时系统会很快的让我们选择是否调试。选中调试就可以容易的附加到进程。原创 2012-09-14 13:56:21 · 14296 阅读 · 0 评论 -
C++二进制导出到Excel代码
我使用C++语言编写的导出Excel文件的代码。功能:1:可生成Xls的Excel二进制文件,但不包括最新的2007格式(此格式正在编写学习中)。2:生成字符串、数字、日期等格式的单元格,可以自由设置格式。3:自由嵌入多个图片(目前不需要也不想支持线型、文本框等图型元素)。4:自由合并单元格,设置列宽和行高(以像素为单位)。5:可同时生成多个命名的Sheet。 特点原创 2011-02-26 09:48:00 · 1674 阅读 · 0 评论 -
VC里的Custom Control
VC里的Custom Control的使用很简单,用鼠标拖动到窗体上,然后设置其“Class”属性为已注册的窗口类,比哪Edit、Button等等。因为像Edit、Button等控件可以很容易的画到窗体上,而对继承于CWnd的自定义窗口类则没有办法直接用鼠标画到窗体上,这时Custom Control就用上了,只要类是使用RegisterClass注册后就能被使用,如:WNDCLASS wc;原创 2009-02-24 12:10:00 · 9882 阅读 · 4 评论 -
VC2005访问WebService
到VS2008里就不再支持引用WebService了,但是就当是学习我还是使用了VS2005尝试了WebService的使用。我这里说的是非托管提MFC程序中的引用。方法很简单,只需要在解决方案的MFC项目上点右键从“添加Web引用”就可以找到Web服务并添加到到项目中。这个网上早有人给出了做法,但是我这里说的是在Win2000下运行的问题。 我的程序是在XP系统下编译运行的,并且运原创 2009-02-25 17:06:00 · 2279 阅读 · 1 评论 -
Base64算法
由于项目用到了字节数组与文本互相转换,所以自己写了一对方法用来把字节数组转成可见字符串,及把字符串转成字节数组的BASE64算法。使用toBase64String的时候默认的是加上了回车换行的处理,但是在fromBase64String的时候无论有没有回车换行符都可以正确的转换。这里的算法完全是自己由Base64思想自己做出来的,如果错误敬请指正。使用的示例: B原创 2009-05-20 16:39:00 · 2879 阅读 · 1 评论 -
选择Icon文件来替换EXE的图标
如何使用一个Icon文件来修改EXE的文件图标是个有趣的问题,然后在网上没有找到免费的成熟代码。 之所以这么说,是因为网络上流传了对EXE图标修改的代码,虽然代码被抄了不少次,然而却存在明显的不足。EXE文件可以显示出来修改后的图标,但其存储的结构是有问题的。比如使用VS2005打开这个被修改过的EXE资源不能查看到修改的Icon信息且会使VS2005不正常的被关闭。现在好了,因为我把这原创 2009-12-17 17:29:00 · 6710 阅读 · 8 评论 -
使用VC下载内容
C#里有一个WebClient.DownloadData可以用来下载指定网址的内容,在VC里一样有这样的功能。代码实现很简单,如下:#include #pragma comment(lib,"wininet.lib") void CTAXGDlg::downLoadData(void){ DWORD length=0; BYTE buffer[1024];原创 2009-12-22 09:41:00 · 937 阅读 · 1 评论 -
C++类里的静态字段设置初值
头文件中有静态的字段class Utility{public: Utility(void); ~Utility(void); static int m_StaticData;};CPP中对静态字段设置初始值可如下:#include "StdAfx.h"#include "Utility.h"int Utility::m_StaticData=NULL;Utility::Utility(void){}Utility::~Utility(void)原创 2010-08-24 16:28:00 · 1646 阅读 · 0 评论 -
VC的编译选项 /analyze
<br />因为系统换成了64位的Win7,原来的VC(VS2005)项目在编译的时候出现了编译警告:<br /> <br />cl: 命令行 warning D9040 :忽略“/analyze”选项;“代码分析”警告在此版本的编译器中不可用<br /> <br />查看项目的属性,并没有直接设置/analyze的设置。打开项目所有的目录,找到项目对应的"***.vcproj"文件,使用记事本打开,查找如下内容:<br />EnablePREfast="true" <br /> <br />如果找到了有这原创 2011-02-23 09:54:00 · 3584 阅读 · 0 评论 -
使用JNI技术实现JAVA程序调用dll
<br />原文:<br />http://hi.baidu.com/dinguangx/blog/item/196560017e40e2031c95832f.html<br /> <br /> JAVA的跨平台的特性深受java程序员们的喜爱,但正是由于它为了实现跨平台的目的,使得它和本地机器的各种内部联系变得很少,大大约束了它的功能,比如与一些硬件设备通信,往往要花费很大的精力去设计流程编写代码去管理设备端口,而且有一些设备厂商提供的硬件接口已经经过一定的封装和处理,不能直接使用java程转载 2011-04-16 10:59:00 · 1801 阅读 · 0 评论 -
VS2010代码高亮pc文件
ORACLE支持在几种高级语言内嵌入SQL语句,或ORACLE库函数调用来访问数据库。它们是C,COBOL,Ada,PASCAL,PL/I等,这些语言称之为宿主语言,用它们开发的程序就称为PRO* 程序,如PRO*C,PRO*COBOL等。 PROC在ORACLE的客户端软件中就有,安装oracle时选上即可。 1.什么是Pro*C/C++ 通过在过程化编程语言C/C++中嵌原创 2011-06-28 13:16:00 · 3313 阅读 · 2 评论 -
Access的Oledb类型对照表
http://support.microsoft.com/kb/320435最常见的数据类型映射的列表下表列出了最常见的数据类型,用于在 Microsoft Access 和这些数据类型与 Microsoft.NET Framework 数据类型以及OleDbType枚举的相关。访问权限类型名称数据库数据类型OLE DB 类型.NET Framework转载 2013-10-18 08:54:15 · 3919 阅读 · 0 评论