摘要:
宽窄字符串转换 宽字符窄字符和通用字符 由于vs下的编程有unicode和ascci这些大体上的区别,所以建议在进行windows编程的时候采用通用类型来处理。windows通过代码编译判断来处理。 C语言版本窄字符集char char*const char * C语言宽字符集 wchar_t wc 阅读全文
2020年12月15日
2020年12月14日
摘要:
DLL远线程注入 远程线程创建和内存自由分配 远线程注入技术: 强制创建一个目标进程的线程:将我们的外挂木马DLL加载进去 加载 LoadLibrary api函数来处理 强制创建一个目标进程的线程 CreateRemoteThread HANDLE CreateRemoteThread( HAND 阅读全文
摘要:
递归函数的本质就是自己调用自己 需要注意的是递归函数比较有一个出口 例子实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> //利用递归函数实现字符串逆序 void reversePrint(char* p) { if (*p == '\0') 阅读全文
摘要:
动态库 把程序的模块互相分割开,形成独立的文件。而不是采用静态库把不同的模块直接编译在一起。也就是说不对这些组成程序的目标程序进行链接、等待程序运行的时候才链接。 也就是把整个链接过程推迟到了运行的时候再进行。 创建动态库 直接采用空项目处理 然后创建对应的头文件和源文件 需要注意的是由于这是一个在 阅读全文
摘要:
静态库配置 将自己写好的代码用静态dll链接的办法给别人使用 生成静态dll文件 创建一个对应的项目,一个包含头文件和源文件的项目 然后把项目的属性配置为静态库 然后这里由于不是可执行文件而是一个静态库,所以直接采用生成来处理。 在当前项目文件下的debug中可以看到生成的lib文件 使用静态库 由 阅读全文
摘要:
预处理指令-条件编译 宏 条件编译: 一般情况下,源程序中的所有行都参加编译,但是有时希望对部分源程序行只在满足一定条件下才编译,也就是对这部分源程序行指定编译条件: 测试存在: #ifdef 标识符 程序段1#else 程序段2#endif//当标识符存在时就编译程序段1不然就是2 测试不存在 阅读全文
2020年12月13日
摘要:
# 回调函数 函数指针做函数参数 ## 实现对任意数据类型进行打印 定义一个void指针,然后讲void指针的地址和用户自己定义的函数用在回调函数里面来调用用户的函数最后处理输出。这里的例子是用double来处理,其他的都是一样的或者结构体变量也是一样处理。 1 #define _CRT_SEC 阅读全文
2020年12月12日
摘要:
应用程序和dll通信-易语言 对于易语言没有静态和动态调用的处理。 首先 在易语言中新建一个动态链接库,并添加导出函数 生成一个应用程序来处理dll函数 在windows窗口程序中添加一个button控件来响应事件,双击button进入单击响应 然后在消息响应框里选择插入dll命令 在dll插入命令 阅读全文
摘要:
应用程序与dll的动态通信:c/c++ 动态调用是在运行的时候完成的。 首先将指定模块加载到调用的进程的地址空间里 采用LoadLibraryA函数来处理来获取dll的句柄 https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi 阅读全文
摘要:
应用程序与dll导出函数的通信方式 应用程序与DLL导出函数的”静态库“通信-C/C++ 何为静态链接库和动态链接库的定义是一样的,区别就在于共享程序代码的方式。 程序一般是需要经过预处理,编译、汇编和链接几个步骤,静态库特点是可执行文件中包含了库代码的一分完整拷贝,缺点就是多次使用就会有多分冗余拷 阅读全文