
C++
文章平均质量分 79
旭子
但行好事,莫问前程!
展开
-
VC编译器参数介绍
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 闲话原创 2012-06-13 10:43:56 · 1962 阅读 · 0 评论 -
Win32 多线程的创建方法和基本使用
总结Win32提供的创建多线程相关的API接口和基本的使用框架。Ref:MSDN: http://msdn.microsoft.com/zh-cn/library/y6h8hye8(v=VS.100)Win32多线程的创建方法主要有:(1)CreateThread()(2)_beginthread()&&_beginthreadex()(3)AfxB原创 2012-06-19 15:59:57 · 954 阅读 · 0 评论 -
各C/C++编译器对wchar_t字符和字符串的正确支持程度
转自:http://blog.youkuaiyun.com/longsong/archive/2007/12/02/1912201.aspx 传统的C风格的字符串是以字符 '/0 '为结尾的一系列字节的集合,其一个单元为char类型,可以保存世界上的几百种不同的字符集,包括ASCII、ISO-8859、GBK、BIG-5、SHIFT-JIS、UTF-8等等。通常这些字符集原创 2012-07-25 11:56:05 · 1691 阅读 · 0 评论 -
JNI中的常用方法总结
1、 用来获取数组元素的JNI函数集GetBooleanArrayElements, GetByteArrayElements, GetCharArrayElements, GetShortArrayElements, GetIntArrayElements, GetLongArrayElements, GetFloatArrayElements, GetDoubleArrayElemen原创 2012-09-16 01:29:02 · 3860 阅读 · 0 评论 -
JNI中调用第三方提供的so文件
JNI调用第三方so中的c方法一、在根目录下建立Android.mk文件LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_PACKAGE_NAME := xxxLOCAL_JNI_原创 2012-09-16 01:33:56 · 3971 阅读 · 0 评论 -
Windows中使用DLL在进程间共享数据
在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的,因为所有的进程用的都收同一块地址空间;而在Win32环境中,情况却发生了变化,每个进程都有了它自己的地址空间,DLL函数中的代码所创建的任何对象(包括变量)都归调用它的进程所有。当进程在载入DLL时,操作系统自动把DLL地址映射到该进程的私有空间,也就是进程的虚拟地址空间,而且也复制该DLL的全局数据的一份拷贝到该进程空间。(在原创 2012-10-15 11:30:33 · 1630 阅读 · 0 评论 -
vc6.0中使用console输出的调试程序的解决步骤
vc6.0中使用console输出的调试办法在vc6.0 win32 和 mfc 工程中加入控制台打印,来调试程序的解决步骤如下:方案一、在 Project -> Setting中,在选项卡 Post-builder step 里新建cmd 输入: editbin /SUBSYSTEM:CONSOLE $(OUTDIR)/youfile.exe原创 2011-11-24 13:33:04 · 3836 阅读 · 0 评论 -
STL 概述
STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其转载 2012-12-06 15:46:53 · 602 阅读 · 0 评论 -
typedef和typename关键字
1、类型说明typedef类型说明的格式为:typedef 类型 定义名;类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型。定义名表示这个类型的新名字。例如: 用下面语句定义整型数的新名字:typedef int SIGNED_INT;使用说明后, SIGNED_INT就成为int的同义词了, 此时可以用SIGNED_INT 定义整型原创 2013-01-16 15:07:54 · 699 阅读 · 0 评论 -
VC中添加WM_USER的消息响应函数
一、注释宏这里运用了手动修改AFX_MSG注释宏中的内容。VC中独特的注释宏可以让代码变灰,它的格式如下//{{AFX //注意:这里只要是以AFX开头的字符串都可以,比如:AFXDWADWXXADW....中间的代码是灰色的//}}AFX注释宏的开始标记其中//和{{之间不能有空格 AFX必须大写并且和{{也没有空格注释宏的结束标记也如此。二、加入消息原创 2012-02-06 13:48:22 · 4802 阅读 · 0 评论 -
封装了一个 Windows 的 命名管道的类
//CNamedPipe.h#ifndef __CNAMEDPIPE_H__#define __CNAMEDPIPE_H__#define PIPE_UNDF -1#define PIPE_SERV 0#define PIPE_CLIN 1class CNamedPipe{public: CNamedPipe(); ~CNamedPipe();原创 2012-01-04 10:57:55 · 2017 阅读 · 0 评论 -
C语言 设置在main 之前运行的函数
我们知道 C++的对象全局对象的构造函数会在main之前运行,例如windows MFC里面,在WinMain 函数前声明了一个theApp对象,其构造函数就在WinMain之前运行,其实在C语言中很早就有了,在gcc中可以使用__attribute__关键字指定如下(注意,这个原创 2011-08-22 16:19:04 · 5046 阅读 · 3 评论 -
C++类型转换的思考
class Base{public: Base() { cout << "base create" << endl; } Base(const Base& b) { *this = b;原创 2011-07-21 17:50:43 · 666 阅读 · 0 评论 -
读文件KEY VALUE对的小模块
#include #include #include #include #include #define CHAR_IS_IN_STR(c, s) (NULL != strchr((s), (c)))#define CHAR_ISNOT_IN_STR(c, s) (NULL == strchr((s), (c)))#define ARRAY_SIZE(A) (sizeof (p原创 2011-11-02 16:53:56 · 556 阅读 · 0 评论 -
Windows下实现一个CThread封装类
用法很简单,从这个类“CThread”继承一个子类"MyThread",重写Run函数即可:#include #include #include #include using namespace std;class CThread {public: CThread(); virtual DWORD Run(); bool Start(); bo原创 2012-01-17 16:01:23 · 5461 阅读 · 0 评论 -
MFC的集合类与STL对比
风格对比 MFC的风格比较朴素平实,开发者比较容易使用; STL风格更周密严谨,需要开发者加深理解才能使用。性能对比 两这运行速度都很快,MFC集合类的运行速度比STL稍逊。 MFC对多线程的支持,也不如STL更安全。源代码对比 MFC的集合类源代码,是普通程序员都可以读得懂的。 S原创 2012-01-18 17:44:41 · 1461 阅读 · 0 评论 -
一个string类的简单实现
实现一个string类的简单实现class CStr {public: CStr(); ~CStr(); CStr(const char* str); CStr(const CStr& cstr); CStr& operator=(const CStr& cstr); //重载=运算符 CStr& operator+=原创 2012-02-02 16:41:35 · 1540 阅读 · 0 评论 -
C++的虚析构函数
class A{public: A(){} virtual ~A(){} //这里如果不用虚函数那么下面 delete p;就只会调用 ~A(),显然造成了内存的泄漏,m_data的空间泄漏了};class B : public A{public: char* m_data; B() { m_data = new char[100]; } ~B原创 2012-02-03 23:21:10 · 610 阅读 · 0 评论 -
一个跨WINDOWS LINUX平台的线程类
继Windows下实现一个CThread封装类之后,这里我再实现一个跨WINDOWS LINUX平台的线程类头文件 DXThread.h#ifndef __DXTHREAD_H__#define __DXTHREAD_H__#define DX_WINDOWS //在WINDOWS上就打开它//#define DX_LINUX //在LINUX 上就打开它#ifdef DX原创 2012-02-04 01:20:40 · 2105 阅读 · 8 评论 -
Window下获取执行文件的目录的路径函数
char* DXGetModulePath(char *path, int nLen){ int nRet = GetModuleFileName(NULL, path, nLen); char *p; if (0 == nRet) return NULL; p = path + nRet; while (1)原创 2012-02-07 16:34:33 · 1254 阅读 · 0 评论 -
发送和接受文件的程序
只要知道机器的IP地址 和端口号就可以通过下面的简单程序进行发送文件。下面的程序可以运行在UNIX/Linux 和windows上。后面会陆续更新各个语言的版本。//发送文件#ifdef __gnu_linux__//linux special #include #include #include #include #include #include #includ原创 2012-05-21 10:09:27 · 899 阅读 · 0 评论 -
最近看了Java 调用C 和 C/C++反调Java,感叹当年的大牛为什么要这么弄
于是自己模仿他的设计也写了个小程序,晒晒,关键就是C++包裹了一个类 struct JNIEnv_ ,内部又通过组合的方式加入了const struct JNINativeInterface_ 的指针佩服啊,还有那个this 我靠,要是我写我肯定想不到这么写, 我肯定这么写,原创 2011-09-05 16:00:04 · 8832 阅读 · 22 评论