上一页 1 ··· 4 5 6 7 8
摘要: 原则上,C++类中私有变量不允许在类之外的其他任何地方访问,一般来说功能完善的类都会提供get,set方法来操作类属性值,但如果没有get、set方法都没有提供,比如使用的是第三方提供的.o(或者动态库)来进行开发的,并且实际应用中我们确确实实需要改变其中某个对象的一个私有参数,有没有什么办法呢?我们知道,一个进程有程序段和数据段,如果我们知道了对象的数据空间,那么得到该对象的成员变量值也就很简单了,而实际上,对象数据段的首地址其实就是对象地址,以例子说明:class A{public:int i;bool setJ(int _j){j = _j;};int getJ() const {ret 阅读全文
posted @ 2012-05-26 15:29 冰吻的夜 阅读(2319) 评论(0) 推荐(0) 编辑
摘要: 当要进行底层移植的时候肯定会遇到这些问题。特整理了下。java语言基本数据类型在JAVA中一共有八种基本数据类型,他们分别是byte、short、int、long、float、double、char、boolean整型其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)lo 阅读全文
posted @ 2012-05-26 15:28 冰吻的夜 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些 函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出 类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪,先来看看MSDN里面是怎么说的:不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码 阅读全文
posted @ 2012-05-26 15:18 冰吻的夜 阅读(241) 评论(0) 推荐(0) 编辑
摘要: new和delete运算符用于动态分配和撤销内存的运算符new用法:1.开辟单变量地址空间1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a.2)int *a = new int(5) 作用同上,但是同时将整数赋值为52.开辟数组空间一维: int *a = new int[100];开辟一个大小为100的整型数组空间二维: int **a = new int[5][6]三维及其以上:依此类推.一般用法:new 类型 [初值]delete用法:1. int *a = new int;d 阅读全文
posted @ 2012-05-26 15:17 冰吻的夜 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 在C++创建DLL,以及使用C++或者C#分别调用DLL中的方法,环境VS2005。VS2005中很多工程都可以生成DLL,例如atl,mfc,win32等等。选择Win32,步骤如下:1:新建项目TestDLL,选择win32中的win32控制台应用程序,在“应用程序设置”中,选择“应用程序类型”为DLL,并将下方的附加选项勾上“空项目”,就可以了。2:添加一个C++类,这时vs2005会生成TestDLL.h和TestDLL.cpp的文件,在.h文件中,键入如下代码:#define LIBEXPORT_API extern "C" __declspec(dllexpor 阅读全文
posted @ 2012-05-26 15:16 冰吻的夜 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1,#pragma data_seg()一般用于DLL中。也就是说,在DLL中定义一个共享的,有名字的数据段。最关键的是:这个数据段中的全局变量可以被多个进程共享。否则多个进程之间无法共享DLL中的全局变量。2,共享数据必须初始化,否则微软编译器会把没有初始化的数据放到.BSS段中,从而导致多个进程之间的共享行为失败。3,你所谓的结果正确是一种错觉。如果你在一个DLL中这么写:#pragma data_seg("MyData")int g_Value; // Note that the global is not initialized.#pragma data_seg() 阅读全文
posted @ 2012-05-26 15:14 冰吻的夜 阅读(210) 评论(0) 推荐(0) 编辑
摘要: GlobalFree HeapFree LocalFree与C函数free的区别与联系GlobalFree是释放空间并且使得句柄无效 对应的申请函数是GlobalAlloc和GlobalRellocHeapFree是释放HeapAlloc和HeapRelloc申请的空间LocalFree是释放LocalAlloc和Localrelloc申请的空间free对应的是malloc 和relloc同样是释放函数,但是有对应关系 一种申请要用对应的释放函数来释放 一个萝卜一个坑也就是你malloc了 就不能用delete来释放 只能用其对应的free前三个函数是windows API,后一个是C运行时库 阅读全文
posted @ 2012-05-24 12:59 冰吻的夜 阅读(766) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8