C/C++
weareu
这个作者很懒,什么都没留下…
展开
-
dll动态库无法访问主程序的变量
2、主程序使用的中运行库为多线程dll,而dll中使用的却是多线程调试dll。改为均使用多线程dll。现象:主程序已经初始化的对象,指针传入dll中后,在dll中却出现未初始化的情况。1、怀疑dll无法访问主程序空间,使用new来产生对象;原创 2024-05-16 20:00:54 · 81 阅读 · 0 评论 -
C++多线程不能退出循环
while(stop){ ;}上述代码在Release时,可能无法退出;因为优化后,判断的stop变量一直是第一次读入的寄存器值,之后即使该变量在其他线程改变,也不会对循环产生任何作用。应该将该变量声明为 volatile ,这样不会优化该变量读取。...原创 2021-03-26 22:33:27 · 821 阅读 · 0 评论 -
vs2012 + cmake3.24.6 生成 opencv-3.0.0-rc1 + opencv_contrib-3.0.0-rc1
参考 https://blog.csdn.net/qq_39707351/article/details/80100778cmake 填写 OPENCV_EXTRA_MODULES_PATH时,使用双斜杠或者反斜杠,否则报错;cmake (foreach)多余的\P原创 2019-08-01 14:46:27 · 175 阅读 · 0 评论 -
VS2015+opencv4.2 raw转为jpg,更新……
配置一、目录可执行目录opencv\build\x64\vc14\bin包含目录opencv\build\includeopencv\build\include\opencv2注意:包含目录中的第一个目录必须包含,因为有包含文件需要该目录库目录opencv\build\x64\vc14\lib二、库文件debug版本就在链接库,输入中添加opencv_world410d.l...原创 2019-07-19 07:04:11 · 1413 阅读 · 0 评论 -
从字符串中获取由逗号隔开的浮点数
废话不说,上代码#include <algorithm>#include <sstream>#include <string>using namespace std;float fNum[2];string str = "123, 345.6";replace(str.begin(), str.end(), ',', ' ');istrings...原创 2019-06-03 23:55:49 · 831 阅读 · 0 评论 -
Release无法加载dll,debug可以
在网上找了各种办法,包括说无法使用相对路径,但是我就是得使用相对路径,方便程序的搬移。现象:如题,LoadLibrary函数返回NULL, GetLastError返回126,将dll搬移到程序目录下,加载成功,但是无法找到函数,GetLastError返回127。解决方法:路径写错了release写成realese,dll名称也写串了,因为有好几个dll都要加载;教训:以后写代码一定要在清...原创 2019-05-27 00:46:15 · 2097 阅读 · 1 评论 -
VS2012 Npcap使用
Npcap是WinPcap的更新版,具体介绍位于:https://nmap.org/npcap/包含4个文件,主要是以下两个:安装文件:https://nmap.org/npcap/dist/npcap-0.99-r9.exe例子以及开发包:https://nmap.org/npcap/dist/npcap-sdk-1.01.zip另外两个分别是源码和调试信息安装时,应该选择WinPca...原创 2019-02-06 03:51:01 · 9728 阅读 · 0 评论 -
C++调试
一、数组越界的表现(一)堆损坏(二)0xC000000005读入位置原因:memcpy拷贝太多了,可以使用memcpy_s,注意第二个参数必须与第一个参数相关,这样才能保证出问题立马发现。浪费一天搞这个。例如:memcpy_s(ucBuf+iOffset, sBufSize-iOffset, ucSrc, iSrcLen );...原创 2019-01-22 22:55:07 · 460 阅读 · 0 评论 -
VS2012+cuda9.1工程转为VS2015+cuda9.2
编译后,报错:1、非类型参数传入模板,关于CComQIPtr类的;之后是MSB37212、需要包含MFC共享dll,不能使用/MD参数编译,关闭该选项或定义AFXDLL该参数是多线程编译MFC动态库使用的;发现可能与使用MFC有关,于是改掉所有与MFC有关的东西,就可以了。关于MSB3721:1、可能是目标平台转换了导致出错,“属性”-&gt;“ReTarget solution”;...原创 2019-01-23 23:36:30 · 713 阅读 · 0 评论 -
Sublime Text 3 加载g++
怕忘记记录下来,主要参考如下博文:https://blog.csdn.net/sharp_zjf/article/details/49078693我使用的是中文版 sublime 所以选项如下:工具-&gt;编译系统-&gt;新编译系统写入如下内容:{ // 编译时使用的命令 // 如果g++路径未加入环境变量的话,就会产生错误:“[WinError 2] 系统找不到指定的文件。...转载 2019-01-12 00:56:29 · 618 阅读 · 0 评论 -
c#调用c的dll
一、将C#工程和C的dll工程放在同一个解决方案下,这样就可以实现联动调试,直接从C#中进入C的dll函数里。注意:每次更改dll中的代码后都必须重新生成dll。另,C#与C中有几种变量类型不对应,注意声明时的区分。语言 C# C 类型 long long long/__int64 byte/Byte unsigned char char ...原创 2018-08-19 21:46:40 · 12749 阅读 · 0 评论 -
C语言中#和##的作用
http://blog.chinaunix.net/uid-27666459-id-3772549.html一、一般用法 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. 用法: #include #include using namespace std; #define STR(s) #s #define CONS(a,b) int(a##e##b) int...转载 2018-06-16 18:24:48 · 22687 阅读 · 1 评论