摘要:winmm.lib的影响 在做音频播放的时候使用到了win系统音频函数waveout; 但是报错: error link 2019 无法解析外部符号:waveoutGetnumDevice /close /reset/opem write 等等 其实是依赖的库文件缺少了Winmm.lib
阅读全文
摘要:经常有QT MFC程序调用动态库无法查看内部打印 解决办法: 文件头部定义: #define UseDebugView #ifdef UseDebugView char g_Debug[256]; #endif 在需要打印的地方使用: #ifdef UseDebugView sprintf_s(g_
阅读全文
摘要:extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,
阅读全文
摘要:#define A 1 在同一个工程的另外一个文件里又定义了#define A 2 并不会报错(2010vs) 亲测可用 但是最后该宏变量A的值 ,应该是预处理 顺序处理 最后一个运行的宏定义的值
阅读全文
摘要:静态链接库: #include "..\lib.h" #pragma comment(lib,"..\\debug\\libTest.lib") //指定与静态库一起连接 printf("2 + 3 = %d",add(2,3)); 动态链接库:动态调用;静态调用 #include "windows
阅读全文
摘要:1 libcpmtd.lib(stdthrow.obj) : error LNK2001: 无法解析的外部符号 __CrtDbgReportW 运行库:多线程 (/MT) 2 MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall
阅读全文
摘要:#include<fstream>using namespace std; void main(){ for (int i=0; i<=1; i++) { char szName[100] = {'\0'}; sprintf(szName, "e:\\text%d.txt", i); //格式化输出
阅读全文
摘要:检查新建的回调函数是否用了__stdcall修饰
阅读全文
摘要:1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern关键字再次声明这个全局变量。 2>静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别在于全局变量对所
阅读全文
摘要:转 PDB文件 PDB(Program Data Base),意即程序的基本数据,是VS编译链接时生成的文件。DPB文件主要存储了VS调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、FPO(帧指针)、对应的行号等等。因为存储的是调试信息,所以一般情况下PDB文件是在Debug模式下才会
阅读全文
摘要:用vs2015创建Visual C++项目,编写生成后,每次都会生成一个project_name.VC.db文件,而且会随着你工程修改运行变的越来越大。 project_name.VC.db是sqlite后端用于intellisense的新数据库,相当于之前的*.sdf SQL Server Com
阅读全文
摘要:1,GNU 先看看wiki百科上的官方说明: “GNU,名称来自Gnu's Not Unix"的缩写,一个类UNIX的操作系统,由GNU计划推动,目标在于创建一个完全兼容于UNIX的自由软件环境。” 由于当时UNIX系统是商业软件,是收费的,而且有一部分源码是没有开放的,所以在1983年,理查德·斯
阅读全文
摘要:在windows中静态库是以 .lib 为后缀的文件,共享库是以 .dll 为后缀的文件。在linux中静态库是以 .a 为后缀的文件,共享库是以 .so为后缀的文件。以linux下的静态库和动态库为例我们研究一下,首先我们看一下他们的生成方式 静态库:首先将源文件编译成目标文件:gcc –c a.
阅读全文
摘要:Makefile的规则 -- 转自 :http://blog.csdn.net/ruglcc/article/details/7814546/ 在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则。 target... : prerequisites ... comman
阅读全文
摘要:1.公有继承public 要保持IS --A的关系 也就是说,派生类继承基类,每一个基类对象同时也是一个派生类对象,但是每一个派生类对象不一定是基类对象。 大包含小的意思,基类的范围要比派生类的小 2.避免遮掩继承而来的名称。 如果基类中用到派生类的函数,我们希望在派生类中他是可见的,因此可以在派生
阅读全文
摘要:1,尽可能延后对象中的变量定义式的出现,这样可以增加程序的清晰度,尽量少的调用构造,如果有定义变量最好在末尾定义并给予初值,这样就避免了默认构造函数的调用。 2 尽量少做转型操作。 const_cast 将对象的常量性转除。 dynamic_cast安全向下转型,用来确定某对象是否是否属于某继承体系
阅读全文
摘要:面向对象要求数据应该尽可能的被封装,然而与直观相反,成员函数带来的封装性比非成员非友元要低。 非成员函数可以允许函数有较大的包裹弹性。 如果某些东西被封装,则不可见,不可见的东西越多则我们就有越大的弹性去变化他,因为我们改变的仅仅直接影响看到改变的那些人事物。 另一方面如果非成员友元和成员函数机能相
阅读全文
摘要:下边代码它返回的A的一个引用指向的s2是一个局部的,从前的,但是如今已经被销毁的对象引用,已经不存在的引用。因此请记住:不要返回一个指针或者引用指向一个局部对象。也不要用指针引用返回一个指向局部静态的对象。函数内的局部对象在函数块运行结束了就销毁了、、、、、、、、、、、、、、、、 const a& bilibili(const a&s) { return a s2(s.x+s.y); }
阅读全文
摘要:首先: delete []p;是用来删除对象数组的,特别是你声明的是对象数组!!! 如果new中用了【】,delete一定要用【】;在new中没有使用,在delete中一定不要使用。 其次: 当你使用new的时候,首先内存被分配 ,然后针对此块内存,会有相应的构造函数被调用。 delete使用的时候
阅读全文