C++ 实时接收com组件抛出的事件
摘要:一、找到事件对用的DISPID 二、添加委托类 1 #pragma once 2 #include "oaidl.h" 3 #include <WinUser.h > 4 #include "testEventCtrl.h" 5 #define WM_NEWUSER 4 6 #define WM_C
阅读全文
posted @
2021-08-13 15:56
一杯清酒邀明月
阅读(350)
推荐(0)
C++ BSTR到STD:String(std:wstring),反之亦然
摘要:1 std::string ConvertBSTRToMBS(BSTR bstr) 2 { 3 int wslen = ::SysStringLen(bstr); 4 return ConvertWCSToMBS((wchar_t*)bstr, wslen); 5 } 6 7 std::string
阅读全文
posted @
2021-08-13 11:38
一杯清酒邀明月
阅读(481)
推荐(0)
C++ std::wstring 互转 std::string
摘要:1、std::wstring 转 std::string 1 string WstringToString(const std::wstring wstr) 2 { 3 #if 1 4 std::string result; 5 int len = WideCharToMultiByte(CP_AC
阅读全文
posted @
2021-08-13 11:34
一杯清酒邀明月
阅读(718)
推荐(0)
使用C#调用C++类库
摘要:环境:win10+VS2017 过程介绍: 1.使用C++编写一个动态库(DLL); 2.将DLL内函数导出; 3.使用C#进行调用; 4.方法调用; 5.在VS进行调试; 1.使用C++编写简单的DLL; 1.1创建项目(x64); 在VS2017中新建->项目->Visual C++->Wind
阅读全文
posted @
2021-08-04 14:45
一杯清酒邀明月
阅读(2141)
推荐(1)
C语言 char *、char []、const char *、string的区别与相互转换
摘要:1.VS运行程序,出现“烫烫烫烫烫烫烫烫烫…”在 Debug 模式下,VC 会把未初始化的栈内存全部填成 0xcc,当字符串看就是 烫烫烫烫……会把未初始化的堆内存全部填成 0xcd,当字符串看就是 屯屯屯屯…… 2. VS不可以char *p=“abcd”注意:编译器是把"abcd"作为“abcd
阅读全文
posted @
2021-08-04 13:17
一杯清酒邀明月
阅读(1349)
推荐(0)
C#如何调用C++(进阶篇)
摘要:上一篇文章最后,提出的一个问题:如果一个c++库中有很多方法,需要一个个声明??这样岂不是要写很多代码??,而且没有智能提示看到提供了那些方法。 如下图: 重点:通过CLI实现c#调用c++ 看完了本文,相信你就会了,一步步操作就是了。 一、 新建一个netcore控制台应用程序; 这个是我们测试调
阅读全文
posted @
2021-08-04 09:10
一杯清酒邀明月
阅读(3342)
推荐(0)
C#如何调用C++(基础篇)
摘要:闲暇之余,记一下笔记!记录一下c#如何调用C++的动态库(dll). 步骤: 一、创建一个C++类,例如: AddOperate.h 1 extern _declspec(dllexport) int Sum(int a, int b); 2 class AddOperate 3 { 4 publi
阅读全文
posted @
2021-08-04 09:03
一杯清酒邀明月
阅读(2981)
推荐(1)
C++ delete指针以后应赋值为NULL
摘要:delete p后,只是释放了指针指向的内存空间。p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址 delete NULL编译器不会报错(因为delete空指针是合法的) 例: 对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。 如下代码 1 i
阅读全文
posted @
2021-07-06 11:20
一杯清酒邀明月
阅读(409)
推荐(0)
C++ noexcept异常说明及其使用
摘要:noexcept异常说明 noexcept异常使用 相比于断言适用于排除逻辑上不可能存在的状态,异常通常是用于逻辑上可能发生的错误。在C++98中,我们看到了一套完整的不同于C的异常处理系统。通过这套异常处理系统,C++拥有了远比C强大的异常处理功能。 在异常处理的代码中,程序员有可能看到过如下的异
阅读全文
posted @
2021-07-05 14:21
一杯清酒邀明月
阅读(2002)
推荐(0)
C++ 单例模式总结与剖析
摘要:C++ 单例模式总结与剖析 单例可能是最常用的简单的一种设计模式,实现方法多样,根据不同的需求有不同的写法; 同时单例也有其局限性,因此有很多人是反对使用单例的。本文对C++ 单例的常见写法进行了一个总结, 包括懒汉式、线程安全、单例模板等; 按照从简单到复杂,最终回归简单的的方式循序渐进地介绍,并
阅读全文
posted @
2021-06-23 09:54
一杯清酒邀明月
阅读(432)
推荐(0)
C++ 在类的定义时初始化非静态变量
摘要:前言距离C++11标准发布时间大约有六年了,但是C++11的诸多特性并未在程序界达到普及的状态,甚至在一些“老程序员”看来,由于他们不了C++11标准新加入的内容,一些正常的程序常常被当做BUG处理,接下来我们就看看C++11加了那些特性,今天我们来测试一下:“在类的定义时初始化非静态变量”。不得不
阅读全文
posted @
2021-06-04 14:28
一杯清酒邀明月
阅读(391)
推荐(0)
INVALID_HANDLE_VALUE 、 NULL、nullptr 和 nullptr_t 的联系
摘要:一、INVALID_HANDLE_VALUE 1、源码 1 // WinNT.h 2 typedef void *HANDLE; 3 // BaseTsd.h 4 typedef _W64 long LONG_PTR, *PLONG_PTR; 5 // WinBase.h 6 #define INV
阅读全文
posted @
2021-05-05 11:24
一杯清酒邀明月
阅读(383)
推荐(0)
C++ 创建二维数组的几种方法
摘要:一、用new申请内存空间 1 int **dp=new int*[n];//动态申请二维数组nxm 2 3 for(int i=0;i<n;++i){ 4 5 dp[i]=new int[m]; 6 7 } 二、用malloc申请内存空间 1 int len=100; 2 3 int **dp=(i
阅读全文
posted @
2021-04-21 15:52
一杯清酒邀明月
阅读(1784)
推荐(0)
Qt C++ new一个对象的,加括号和不加括号的区别
摘要:结论 1.加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数,看需求 2.C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时
阅读全文
posted @
2021-04-09 13:55
一杯清酒邀明月
阅读(789)
推荐(0)
C++ break,continue,return用法
摘要:一.break 1. break语句形式: break;2. break语句功能: A. 在switch语句中,break是其语法本省的一部分,break语句会终止其后语句的执行,退出switch语句。 B. 使一个循环立即结束,也就是说在循环中遇到break语句时,循环立即终止,程序转到当前循环体
阅读全文
posted @
2021-04-08 08:55
一杯清酒邀明月
阅读(1353)
推荐(0)
C++ malloc()和free()函数的理解
摘要:关于malloc和free这两个函数,malloc的用法示例:int *p=(int *)malloc(2*sizeof(int)); 它表示在堆中开辟一块大小为2*sizeof(int)的一块内存空间,p指向这块内存空间的起始地址,malloc前面的(int*)表示这块空间用来存储int型数组。开
阅读全文
posted @
2021-03-16 10:31
一杯清酒邀明月
阅读(717)
推荐(0)
MATLAB函数编译成库供C++调用
摘要:MATLAB具有着很高的计算性能,一些算法用MATLAB很容易实现,而用C++很难实现,如果想在C++中调用MATLAB编写的函数,可以将该函数编译成库文件,之后在C++中对其进行调用。 本文详细讲解如何将MATLAB函数编译成库,并在C++中进行调用。方法可行,本人亲测。 第一步、在MATLAB中
阅读全文
posted @
2021-03-15 08:59
一杯清酒邀明月
阅读(1906)
推荐(0)
C/C++ 获取unsigned short的高八位和低八位数值
摘要:1 #include "pch.h" 2 #include <iostream> 3 #include <string> 4 5 typedef unsigned char BYTE; 6 typedef unsigned short WORD; 7 typedef unsigned int UIN
阅读全文
posted @
2021-03-08 15:03
一杯清酒邀明月
阅读(1997)
推荐(0)
C/C++ 跳出多重循环方法
摘要:c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto for (int i = 0; i < MAX1; i++) { for (int j = 0; j < MAX2; j++) { if (condition) {
阅读全文
posted @
2021-02-01 10:52
一杯清酒邀明月
阅读(2410)
推荐(0)
双线性插值的C/C++代码
摘要:双线性插值,英文也叫 Bilinear Interpolation 是个对数据非常不错拟合方法.可以想像成在二维网格下对X和Y方向上的两次插值.具体的公式什么的就不多说了 双线性插值 这个插值方法估计很多做研究的都需要用上(当然我不使用matlab), 于是我把公式翻译成C/C++函数, 欢迎使用.
阅读全文
posted @
2021-01-11 15:31
一杯清酒邀明月
阅读(2732)
推荐(0)