C++
jianzhanger
这个作者很懒,什么都没留下…
展开
-
利用CMarkup类解析XML文件
创建一个新的XML文档,分析修改现存的XML文档,所有的这些都中可以从一个利用MFC或STL字符串所实现的一个简单类的方法中得到。关于CMarkup,你可以运行Zip文件右边的例子,如果你愿意,你可以通过看源码,几分钟把它加入到你自己的应用中。特征Cmarkup是依据EDOM的,这是这个简单XML分析的关键。EDOM是操作XML元素、属性和数据的简明方法集。当你不需要复杂的XML特性时,它转载 2008-09-22 17:14:00 · 2763 阅读 · 0 评论 -
STL 算法集合
stl算法转载 2011-08-11 08:58:55 · 1783 阅读 · 0 评论 -
C++和C#编写调用COM组件
摘要:现在COM组件的使用越来越广泛,在各个程序中调用COM组件我想大家都遇到过,这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。关键转载 2011-10-14 16:32:26 · 424 阅读 · 0 评论 -
FindWindowEx的用法
FindWindowEx完整定义如下:HWND FindWindowEx( HWND hwndParent, // 父窗口句柄 HWND hwndChildAfter, // 开始的子窗口句柄,这个参数很有用 LPCTSTR lpszClass, // 类名 LPCTSTR转载 2011-10-17 11:02:39 · 3594 阅读 · 0 评论 -
VS编译时源代码与原始版本不同的解决办法
1. "编辑"-->"高级"-->"格式化选定内容",然后重新编译。该方式能解决部分因为无效字符导致的问题。2. 记事本重打开不能下断的文件,再另存为UNICODE编码的文件。该方式能解决编码导致的问题。原创 2013-04-20 09:45:22 · 4181 阅读 · 0 评论 -
在Win7或2008(安装了 KB983246补丁)上编译的ADO应用程序,不能运行在XP,2003等低级别的操作系统的解决方案
错误表现:产生错误的场景如下:重新运行 Windows 7 Service Pack 1 (SP1) 或 Windows 2008 R2 sp-1 或具有 KB9823246 安装在计算机上编译 Microsoft ActiveX 数据对象 (ADO) 应用程序使用下列应用程序之一: Microsoft Visual C++ Microsoft Visual B转载 2013-05-24 16:15:28 · 5897 阅读 · 2 评论 -
使用 C++ .NET 和 MFC 嵌入并自动化 Word 文档
本文介绍如何使用 Visual C++.NET 在单文档界面 (SDI) Microsoft 基础类 (MFC) 应用程序中将 Word 文档嵌入 View 对象。 创建嵌入 Word 文档的 MFC 应用程序下列步骤介绍如何嵌入一个 Word 文档并自动化文档将数据添加到单元格。启动 Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单转载 2013-06-04 21:35:06 · 2517 阅读 · 1 评论 -
#pragma pack 用法详解
1. #pragma pack(show)以警告信息的形式显示当前字节对齐的值.2. #pragma pack(n)将当前字节对齐值设为 n .3. #pragma pack()将当前字节对齐值设为默认值(通常是8) .4. #pragma pack(push)将当前字节对齐值压入编译栈栈顶.5. #pragma pack(pop)将编译栈栈顶的字节对齐值弹出并转载 2013-07-16 17:16:42 · 817 阅读 · 0 评论 -
标准C++ RTTI的仿MFC实现 - 只用2个宏来实现"根据对象名创建对象"
作者: Jerry Cat时间: 2006/05/30链接: http://www.cppblog.com/jerysun0818/archive/2006/05/30/7895.html1. 起由:C++ RTTI缺乏一些运行时信息即便是C++98这方面也不好使,无法根据对象名直接创建对象. 所以MFC为了实现序列化,从头构造了自己的RTTI信息,并定义了一整套宏.转载 2013-07-24 09:38:03 · 1044 阅读 · 0 评论 -
C#调用C++ DLL相关问题
由于C#存在易反编译的弊端,虽然有一些工具和方法,混淆,重命名,加密,但是不是很方便,有些情况下混淆后不能成功运行了。很多人都想把核心的代码封装成C++的DLL就没那么简单被反编译了,当然没有绝对的。我个人认为这是比较好的方法 把最核心的功能封装在c++dll中然后用C#做界面或其他。下面是一篇简单介绍C#如何调用C++DLLC#语言使用方便,入门门槛较代,上手容易,并且语法与C,ja转载 2013-08-29 21:32:12 · 621 阅读 · 0 评论 -
有感于STL的内存管理
1. 背景前些天在一个技术分享会上,某大牛说,STL使用了内存池,释放内存的时候,并不释放给OS,而是自己由留着用。听到这些观点后,我就有些着急了,因为我以前一直是直接使用STL的一些工具类的,比如std::string、std::map、std::vector、std::list等等,从来都没有关注过内存的问题。带着内存的问题,我花了两三天的时间去阅读STL的代码,并且写转载 2013-08-31 11:05:15 · 561 阅读 · 0 评论 -
VC2010调试DLL工程的方法
以下摘自MSDN:如果有用于创建可执行文件的项目,则从该项目开始调试。然后可以打开 DLL 的源文件,并在该文件中设置断点,即使它不是用于创建可执行文件的项目的一部分。如果从创建 DLL 的项目开始调试,则必须指定在调试 DLL 时要使用的可执行文件。为调试会话指定可执行文件在“解决方案资源管理器”中,选择用于创建 DLL 的项目。从“视图”菜单中,选定“属性页原创 2013-09-14 15:51:54 · 4558 阅读 · 0 评论 -
VC2010使用GSOAP调用C#写的WEBSERVICE
一、环境:1、VS2010 sp12、GSOAP 2.8.11 ,3、WIN8 IIS二、实现用C#写个WEB SERVICE发布到本机,应用程序名为SRVgsoap主要的应用程序分为两个:wsdl2h和soapcpp2。wsdl2h是将wsdl定义转换成.h文件的工具。主要有一些选项:-c代表转化成C代码。-s代表不使用STL,取而代之需要在工程中转载 2013-09-14 14:25:21 · 1615 阅读 · 0 评论 -
Java调用C/C++编写的第三方dll动态链接库
最近在用weka做一个数据挖掘相关的项目,不得不说,weka还是一个不错的开放源代码库,提供了很多最常用的分类和聚类算法。在我的项目中要用到一个聚类算法,Affinity Propagation(AP),由多伦多大学的Brendan J. Frey发表于2007年。相比其他的聚类算法,AP算法的聚类结果更加准确。在AP的官方网站公布了AP算法的动态链接库,我的目标就是实现在Java工程中调转载 2013-11-19 09:23:12 · 3679 阅读 · 0 评论 -
如何正确获取MYSQL的ADO连接字符串
首先你正确安装了MYSQL的数据库驱动程序(mysql-connector-odbc-5.1.6-win32.msi )1.在桌面上新建一个空的文本文件mysql.txt,重命名为mysql.udl;2.双击这个mysql.udl文件,打开“数据库连接属性”对话框,在“提供程序”页选择”Micrsoft Ole DB Provider for ODBC Drivers“, 点击下一转载 2014-06-16 15:15:49 · 9997 阅读 · 0 评论 -
CADOCommand错误“ORA-01008:并非所有变量都已绑定”的解决方案
在用CADOCommand做Oracle传参操作时,总是提示“ORA-01008:并非所有变量都已绑定”,但是仔细检查参数匹配后,发现并没有出现遗漏或者错误。在另一个项目中是可以用传参操作的,查看连接方式,发现使用了MS的驱动 msdaora ,而不是Oracle驱动orao原创 2011-08-30 12:15:43 · 2829 阅读 · 0 评论 -
VS停止调试后输出窗口无法关闭
VS2005总是莫名的出现控制台程序调试时窗口无法关闭的情况,Google后发现解决方案:Microsoft security update KB978037 惹的祸,目前解决方法是把它卸载了就可以了。原创 2010-08-20 16:36:00 · 3074 阅读 · 1 评论 -
mt.exe : general error c101008d 解决方法
重新安装VS2005中文版后,编译以前的程序出现编译错误:mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file奇怪的是,重新编译后有一定的几率可以成功编译,查询网络发现以下解决方法:在项目属性——配置属性——清单工具——输入和输出中,把嵌入清单改成否转载 2010-01-21 16:22:00 · 5557 阅读 · 2 评论 -
关于在STL容器list中使用find_if 函数
class Display{public: unsigned int ipAddress; unsigned int playStyle; unsigned int brightnessAdjust; unsigned int width;转载 2008-10-28 15:35:00 · 3520 阅读 · 0 评论 -
用Visual C++操作INI文件
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTS转载 2008-10-29 16:30:00 · 488 阅读 · 0 评论 -
C/C++文件操作(一):FILE指针
语言文件系统称为流文件(Stream),正文流(正文文件),二进制流(二进制文件) 缓冲与非缓冲文件 顺序操作文件与随机操作文件 顺序文件:读/写第K个数据块之前必须读/写第1至K-1个数据块; 随机文件:可直接读/写第K个数据块; 正文文件的操作一般是顺序文件; 二进制文件的操作都是随机文件。 一、文件操作的一般过程 定义文件指针 FIL转载 2008-12-29 15:00:00 · 26615 阅读 · 0 评论 -
VC2005中,无法在控制台程序中打印中文的问题
最近新装VS2005,发现与VS2003差异还是比较大的,不过通过不断的debug,还是可以通过编译的,例如unicode编码的问题。但是最近做了一个工程,出现在控制台程序中无法打印中文的问题。经过多方验证,终于发现问题所在: 原因: 设置了setlocale(LC_ALL, ""); 而vc2005默认的是"C" 解决方法: setlocale(LC_ALL, "C");原创 2008-11-11 14:03:00 · 1194 阅读 · 2 评论 -
VC2005去掉烦人的warning C4996: '×××' was declared deprecated
解决方法:在项目属性页-->配置属性-->C/C++-->预处理器-->预处理器定义添加;_CRT_SECURE_NO_DEPRECATE注意:Debug和Release都要添加 附:微软说非安全库函数sprintf、sscanf、strcpy等都是不安全的,应该用sprintf_s、sscanf_s、strcpy_s取代。转载 2009-01-19 08:44:00 · 1340 阅读 · 0 评论 -
error C2059 syntax error : '__declspec(dllimport)' 错误解决方案
今天在做dll开发的时候,用VC2003编译成功后,心血来潮升级到VC2005,立刻一堆错误,其中一个错误error C2059 syntax error : __declspec(dllimport) 破费一番周折。 #ifdef GSMMULTIPORT_EXPORTS#define GSMMULTIPORT_API __declspec(dllexport)#else原创 2009-02-10 16:36:00 · 9322 阅读 · 1 评论 -
用InternetOpen下载小文件
#include "stdafx.h" #include #include #include #pragma comment(lib,"wininet.lib") void main() { DWORD byteread=0; char buffer[100]; memset(buffer,转载 2009-03-02 19:56:00 · 7510 阅读 · 1 评论 -
用WM_COPYDATA实现进程通信
用WM_COPYDATA的前提:1,知道接收消息进程的句柄。2,接收消息进程重载了WM_COPYDATA消息映射,能对其做出反应,因为必须使用SendMessage()。下面CODE几行就说明了一切。OK,开始写发送端代码:HWND hWnd = FindWindow(NULL,"MyApp");if(hWnd!=NULL){ COPYDATASTRU转载 2008-12-19 15:24:00 · 1659 阅读 · 0 评论 -
简单的 C++ SOCKET编程 ---基于TCP/IP协议
分别建两个工程。。把cpp拷贝进去运行就可以了。。。server端: #include #include #pragma comment(lib,"ws2_32.lib")void main(){ //创建套接字 WORD myVersionRequest; WSADATA wsaData; myVersionRequest=MAKEWORD(1,1); int err; err=WS转载 2009-03-03 16:23:00 · 1328 阅读 · 0 评论 -
_beginthread 与 CreateThread
程序员对于Windows程序中应该用_beginthread还是CreateThread来创建线程,一直有所争论。本文将从对CRT源代码出发探讨这个问题。 I. 起因今天一个朋友问我程序中究竟应该使用_beginthread还是CreateThread,并且告诉我如果使用不当可能会有内存泄漏。其实我过去对这个问题也是一知半解,为了对朋友负责,专门翻阅了一下VC的运行库(CRT)源代码,终于转载 2009-03-18 17:22:00 · 587 阅读 · 0 评论 -
Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量
使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果都是读取操作,则转载 2009-04-21 11:53:00 · 973 阅读 · 0 评论 -
C/C++文件操作(三):CFile/CStdioFile类
CFile//创建/打开文件CFile file;file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);文件打开模式可组合使用,用“|”隔开,常用的有以下几种:CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文转载 2009-05-20 15:00:00 · 3232 阅读 · 0 评论 -
C/C++文件操作(二):stream类
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin转载 2009-05-20 14:48:00 · 2030 阅读 · 0 评论 -
UNICODE编码
最近做了一个需要支持Unicode的项目,现在把编程中一些心得总结一下。1、TCHAR ,UNICODE,CHAR,wchar_t 之间的关系经常发现有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,这个问题曾经搞的很混乱。为了统一,有必要搞清楚它们之间的关系。 为了搞清这些函数,就必须理请几种字符类型的写法。char就不用说了,先说一些wchar_t。wchar_转载 2009-07-02 10:53:00 · 742 阅读 · 0 评论 -
安装VS2010 SP1卡在KB983509处的解决方法
今天在虚拟机Windows 2003 server中安装VS2010的SP1升级包,卡在KB983509处过不去。网上找到一堆解决办法,觉得很诡异。分析了原因后,灵光一闪,打开Windows的服务Windows Installer,问题解决。原创 2016-05-03 19:44:41 · 6767 阅读 · 1 评论