上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 30 下一页
摘要: 只要看见“W”就是宽的意思,左边wchar_t,右边char字符分类: 宽字符函数 普通C函数 描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit() isdigit() 测试字符是否为数字 iswgraph() isgraph() 测试字符是否是可见字符 iswlower() islower() 测试字符是否是小写字符 iswprint() isprint() 测试字符是否是可打印字符 iswpunct() ispunct() 阅读全文
posted @ 2013-07-23 16:05 慧由心生 阅读(457) 评论(0) 推荐(0) 编辑
摘要: VC6中CString sTime = _T("2007-10-26 13:20:30"); char *charTime = (LPSTR)(LPCTSTR)sTime;CString sFormat = _T("%d-%d-%d %d:%d:%d");char *charFormat = (LPSTR)(LPCTSTR)sFormat;int nYear;int nMonth;int nDate;int nHour;int nMin;int nSec; stscanf(charTime,charFormat,&nYear,&nMont 阅读全文
posted @ 2013-07-23 14:03 慧由心生 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 例如“error LNK2019: 无法解析的外部符号error LNK2001: 无法解析的外部符号“private: static struct _OVERLAPPED CUsbCom::g_WriteOverlapped”应该是工程设置的问题 没有连接相应的lib库或者是所用到的函数没定义(这个定义是在别的类里面的)当出现error LNK2001: 无法解析的外部符号 _print_interface log.obj 可在log.c里搜print_interface(无前面_),找到此函数,看有无定义学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于 编程者来说, 阅读全文
posted @ 2013-07-23 11:19 慧由心生 阅读(20953) 评论(0) 推荐(0) 编辑
摘要: static1) 产生背景引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现?最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此函数控制)。 类的静态成员也是这个道理。解决方案:因此C++ 中引入了static,用它来修饰变量,它能够指示编译器将此变量在程序的静态存储区分配空间保存,这样即实现了目的,又使得此变量的存取范围不变。2) 具体 阅读全文
posted @ 2013-07-23 11:13 慧由心生 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运行时定位DLL函数的可执行代码所需的信息。静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件中。关于lib和dll的区别如下:(1)lib是编译时用到的,dll 阅读全文
posted @ 2013-07-20 10:20 慧由心生 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 一、生成dll文件(VS2010 Win32 程序)CreateDll.h// 下列 ifdef 块是创建使从 DLL 导出更简单的// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 CREATEDLL_EXPORTS// 符号编译的。在使用此 DLL 的// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将// CREATEDLL_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的// 符号视为是被导出的。#ifdef CREATEDLL_EXPORTS#define CREATEDLL_API __declspec(dllexpor 阅读全文
posted @ 2013-07-19 22:41 慧由心生 阅读(5732) 评论(4) 推荐(1) 编辑
摘要: 一、为什么需要dll代码复用是提高软件开发效率的重要途径。一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用。比较常见的例子是各种应用程序框架,如ATL、MFC等,它们都以源代码的形式发布。由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”。“白盒复用”的缺点比较多,总结起来有4点。暴露了源代码;容易与程序员的“普通”代码发生命名冲突;多份拷贝,造成存储浪费;更新功能模块比较困难。实际上,以上4点概括起来就是“暴露的源代码”造成“代码严重耦合”。为了弥补这些不足,就提出了“二进制级别”的代码复用。使用二进制级别的代码复用一定 阅读全文
posted @ 2013-07-19 18:52 慧由心生 阅读(15123) 评论(0) 推荐(0) 编辑
摘要: // TestShlwAPI.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using std::wcout;using std::endl;#include using std::wstring;#include using std::wifstream;int _tmain(int argc, _TCHAR* argv[]){ //main.cpp://读我自己 wifstream fin("TestShlwAPI.cpp"); wstring str; wchar_t wcharArr[1024 阅读全文
posted @ 2013-07-16 14:57 慧由心生 阅读(4664) 评论(0) 推荐(0) 编辑
摘要: // TestShlwAPI.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #pragma comment(lib,"shlwapi.lib")#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ // Valid file path name (file is there). char buffer_1[] = "C:\\Install.log"; char *lpStr1; lpStr1 = buf 阅读全文
posted @ 2013-07-16 13:52 慧由心生 阅读(9000) 评论(0) 推荐(0) 编辑
摘要: 当您创建 BSTR的并将它们使用以避免内存泄漏的它们在COM对象之间时,必须注意在将内存的。 当 BSTR 在接口中保持,必须释放其内存,当处理它。 但是,那么,当 BSTR 通过在接口外时,接收的对象对其内存管理的责任。 通常,分配和释放为 BSTR分配的内存的规则如下: 在您调用需要 BSTR 参数的函数时,必须在调用之前分配 BSTR 的内存和之后释放。 例如: HRESULT CMyWebBrowser::put_StatusText(BSTR bstr)// shows using the Win32 function // to allocate memory for ... 阅读全文
posted @ 2013-07-11 15:14 慧由心生 阅读(1500) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 30 下一页