随笔分类 - C++
摘要:前面提到过C++具有函数重载功能,所以引出的函数名会有变化,即名称改编,如果是C语言编写的客户端则无法正确识别。 处理方法: ①只需在宏定义中间增加 extern "C",但这种使用仅针对导出的函数是全局的,如果导出的是类,则不能这样。 ②通过dumpbin查看导出的函数信息,可以看到函数名称跟我们
阅读全文
摘要:如何在动态链接库里导出一个类? ①在库头文件里增加一个类声明,class DLL1_API Point是将类内所有成员都导出,如果只导出某个成员函数,则只需在对应的成员函数前加DLL1_API即可; 注意的是导出类访问权限也受public和private限制; ②在库源程序里完善成员函数定义; ③在
阅读全文
摘要:因为动态链接库里的内容是自己定义的,所以在外部程序调用时我们自己知道库里包含哪些变量和函数,如果我们提供库给其他人使用,则最好增加一个头文件,告知库里包含的函数; ①将动态链接库源文件内容增加红色框内容,因为编译时候是不编译头文件的,通过include展开头文件; ②增加一个头文件,内容如下,如果外
阅读全文
摘要:静态库:函数和数据被编译进一个二进制文件,通常扩展名为.lib,在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件。 动态库:往往提供2个文件,一个是引入库和一个DLL,引入库包含被DLL导出的函数和变量的符号名,DL
阅读全文
摘要:C++中强制类型转换有四种: 1.static_cast 格式:static_cast<Type>(Value); --用于基本类型间的转换,但不能用于基本类型指针间的转换; --用于有继承关系类对象之间的转换和类指针之间的转换; --static_cast是编译期进行转换的,无法在运行时检测类型,
阅读全文
摘要:1.new关键字是C++中的一部分,malloc是由C库提供的函数; 2.new是以具体类型为单位进行内存分配,malloc只能以字节为单位进行内存分配; 3.new在申请单个类型变量时可进行初始化,malloc不具备内存初始化的特性。
阅读全文
摘要:1.内联函数 2.函数重载 重载概念:同一个标识符在不同的上下文有不同的意义; 函数重载: --同一个函数名定义不同的函数; --当函数名和不同的参数搭配时,表达的意思也不同; --由函数名和函数参数列表决定的,与返回值无关系; 函数重载至少满足以下条件: --参数个数不同 --参数类型不同 --参
阅读全文
摘要:1、剪切板模式、 在MFC里新建两个文本框和两个按钮,点击发送按钮相当于复制文本框1的内容,点击接收按钮相当于粘贴到文本框2内; 发送和接收按钮处功能实现如下:
阅读全文
摘要:1. rand() rand(产生随机数)表头文件: #include<stdlib.h>定义函数 :int rand(void) 函数说明 :因为rand() 的内部实现是用线性同余法做的,它不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand() 会返回一随机数值
阅读全文
摘要:三种方法: 1、互斥对象 2、事件对象 3、关键代码段 三种比较: 互斥对象和事件对象都属于内核对象,利用内核对象进行线程同步,速度较慢,但利用互斥对象和事件对象这样的内核对象,可以在多个进程中的各个线程间进行同步。 关键代码段是工作在用户方式下,同步速度较快,但在使用关键代码段时,很容易进入死锁状
阅读全文
摘要:当事件对象为自动重置状态获得有信号状态时,只有一个线程成为可调度状态,同时操作系统会将该事件对象设置为非信号状态,当对所保护的代码执行完后,需调用SetEvent()设置事件对象为有信号状态, 而手动重置不会事件对象设置为非信号状态,除非显式的调用ResetEvent()函数设置为非信号状态。 //
阅读全文

浙公网安备 33010602011771号