开发语言|C++
文章平均质量分 69
C++工作学习记录
澄鑫
从事计算机视觉领域算法的开发与部署工作,email:ycx971024@163.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C#|C++】C#调用C++导出的dll之非托管的方式
_declspec#else__declspec__declspec 是 Microsoft C++ 编译器特有的关键字,用来为变量、函数、类等添加 存储类属性 或 编译器指令,从而控制它们的行为或链接方式。我们上述的操作就是给它一个更显示的指令名称,方便我们去理解和使用。..."demo.dll"这里需要注意的是,如果使用的是P/Invoke的方式来对接,那么我们不能导出类,只能导出方法,如果我们写的是类,那么需要再封装一下,变成一个独立的方法给c#调用。原创 2025-07-29 22:26:28 · 539 阅读 · 0 评论 -
【C#/C++】C#调用C++导出的dll以及C#调用C#导出的dll,联调代码步骤
1、属性->配置属性->常规->输出目录->C#项目的debug目录路径。4、属性->配置属性->调试->命令设置成C#项目的软件exe路径。2、工具->选项->调试->常规->不启用“仅我的代码”3、属性->配置属性->调试->调试器类型设置成混合。3、工具->选项->调试->常规->JIT优化。2、目标文件名和配置类型设置成.dll模式。1、C#项目属性->启用本地代码调试。5、设置完之后,重新生成dll。原创 2024-01-25 21:38:15 · 579 阅读 · 0 评论 -
【CMake|TensorRT】Windows下使用CMake编译项目,yolov8-seg为例子
然后点击finish,最后再点击generate即可生成我们的.sln项目文件。指定我们的项目路径,和build的路径(没有build文件夹则会自动创建)。原创 2024-11-12 10:03:12 · 893 阅读 · 0 评论 -
【C#/C++】C++使用托管式的导出dll的方式给C#调用
这中托管式的好处就是,我们可以在我们的项目中写上很多种我们想导出的dll的实现,而不需要修改我们的基础类中的方法,我们可以根据需要写好一个个这样的DLL_MANAGER1, DLL_MANAGER2, …等等,然后在开始写上 #ifdef xxx,我们就可以根据需要导出对应的dll包,只需要在预处理器定义那边删减即可。原创 2024-10-29 13:51:23 · 1053 阅读 · 0 评论 -
【C#/C++】C#调C++的接口,给C++传结构体数组
C#软件创建了一个结构体数组用来存储图像的区域信息,分别是矩形框的左上像素的xy坐标和矩形框右下像素的xy坐标。需要传入给调用的C++函数的参数列表中,我们选择使用C#传入一个结构体数组指针的方式,C++的参数列表中也使用数组指针来接收这个变量。首先要保证C#和C++两边定义的结构体要完全一致。原创 2024-07-24 12:07:39 · 1101 阅读 · 0 评论 -
【C#/C++】C++定义一个返回uchar*的函数,调用函数时接收的数据异常
这个错误代码中,我们虽然能够在main函数中获得函数返回的一个非空的uchar* 指针变量,但是这个指针其实是一个无效的指针,因为这个指针指向的图像是在畸变矫正函数内部定义的一个局部变量,因此在返回这个指针之后,会自动销毁这个图像的数据,所以我们在函数外部获取的指针是无效的。我是想实现一个图像畸变矫正的函数,由于相机的硬件原因(相机内外参数,视野)会导致我们取到的图有一定程度的畸变,在实际的应用中,我们需要先对相机进行标定,获得相机的参数,比如相机的内参矩阵,畸变系数,旋转向量,位移向量等。原创 2024-06-06 16:22:39 · 741 阅读 · 0 评论 -
【C++|TensorRT】使用ostream和istream类来读写TensorRT模型并推理(v9_trtx)
写入时,我们先创建一个std::ofstream的写入流p,初始化构造函数的第一个参数为const char *,填写保存路径,第二个参数为打开写入的方式,在写入序列化模型时,一般都是std::ios::binary的形式;方法来获取指向序列化模型数据的指针,但是这里我们需要将这个指针的数据类型转为const char *型,因此我们需要用到。在调用write写入时,第一个参数是const char*的数据指针,第二个参数是写入流的字节数。方法,该方法提供数字到指针间的转换以及不同类型指针间的强制转换。原创 2024-03-19 10:34:09 · 1071 阅读 · 2 评论 -
【TensorRT】官方文档onnx序列化教程与推理教程
需要注意的是,TensorRT网络定义的一个重要方面是它包含指向模型权重的指针,这些指针由构建器复制到优化的引擎中。由于网络是使用解析器创建的,所以解析器拥有权重占用的内存,因此在构建器运行之前,不可以删除解析器对象。并且由于需要展示各对象的存在周期,实例代码中没有使用智能指针,但是建议在实际使用中加上智能指针来配合TensorRT接口。本博客主要说明的是TensorRT C++ API,从我们获取到onnx模型开始的流程。现在,我们可以通过ONNX模型来填充网络定义,ONNX解析器API位于文件。原创 2024-01-28 22:47:17 · 1364 阅读 · 0 评论 -
【C++】对外接口封装以及导出动态链接库DLL
可以看到,没有加上extern “C” 的话,接口名称就会变得很长,但是好处是,可以看到接口接受的参数数据类型。这里的输出目录可以自定义我们导出时的dll的路径,当然在不设置的情况下,默认在项目路径中的x64/Release或者x64/Debug中。然后,我们可以通过vs的开发者shell中输入命令行来查看我们的dll接口,方便我们在调用dll时查看接口:点击。这就可以查看到我们导出的dll的接口名称了。这里需要注意的一个点就是我们在头文件中,申明对外的接口时,需要加上。原创 2024-01-27 23:39:04 · 1200 阅读 · 0 评论
分享