一.介绍

本项目是接收卫星视频流,并将视频播出,同时可在视频上编辑字幕的内容、位置、字体大小等。上一篇文章描述了C++怎么生成dll文件,地址,这篇文章讲C#调用dll完成字幕编辑功能。
二.步骤
C#新建项目这个过程就不讲了,只说调用dll的步骤。
1.引用非托管动态链接库,申明dll中每个方法的静态入口。
2.在C#代码中直接调用方法
是不是感觉很简单

三.代码

1.申明

 public partial class DefineClass{[DllImport("cgTool.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]public static extern void loadText2(String strText, [In]int uiTextX, [In]int uiTextY, [In]IntPtr pTextBuffer, [In] int x, [In] int y, int fh, int fw, string fontStr, int r, int g, int b);//loadText针对于可以移动的多行字幕[DllImport("cgTool.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]public static extern void loadText3(String strText, int uiTextX, int uiTextY, IntPtr pTextBuffer, int x, int y, ref int bmw, int fh, int fw, string fontStr, int r, int g, int b);[DllImport("cgTool.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]public static extern void backPic(bool ifBack, String strText, [In]int uiTextX, [In]int uiTextY, [In]IntPtr pTextBuffer, [In] int x, [In] int y);[DllImport("cgTool.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]public static extern void AreaMove([In]int fieldNo, [In] IntPtr pCgSrcBuffer, [In]  IntPtr pCgDecBuffer, [In] int ulWidth, [In] int ulHeight, [In] int ulMoveDirection, int ulMoveStep, ref int ulUp);//areaMove2可以移动多行字幕[DllImport("cgTool.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]public static extern void AreaMove2([In] IntPtr pCgSrcBuffer, [In]  IntPtr pCgDecBuffer, [In] int ulWidth, [In] int ulHeight, int ulMoveStep, int bmw);}

2.调用

DefineClass.loadText2("", XtraForm2.pos_x, XtraForm2.pos_y, m_pCgSrcBuffer, m_siVideoSize.x, m_siVideoSize.y, XtraForm2.m_height, XtraForm2.m_width, XtraForm2.fontStr, XtraForm2.r, XtraForm2.g, XtraForm2.b);

C#与C++联合编程之C#调用C++dll相关推荐

  1. C# 调用C++ dll 返回char*调用方式(StringBuilder乱码)

    // CDLLDemo.cpp : 定义 DLL 应用程序的导出函数. // #include "stdafx.h" #include "string.h" # ...

  2. C#调用C++DLL类的方法

    C++的优势在于高效灵活,C#的优势在于简单易用,两者结合起来对项目开发来说是件好事,而且C++不容易反编译,也保障了代码的安全性,如果一些核心算法使用C#编写,那么保密就是一个问题.     C++ ...

  3. c怎么调用matlab dll,matlab和c++调用DLL方法(最新整理)

    <matlab和c++调用DLL方法(最新整理)>由会员分享,可在线阅读,更多相关<matlab和c++调用DLL方法(最新整理)(6页珍藏版)>请在人人文库网上搜索. 1.M ...

  4. Python:使用ctypes库调用外部DLL 数据类型对应

    Python:使用ctypes库调用外部DLL(转) 前言

  5. C#调用C++dll

    1.添加命名空间 using System.Runtime.InteropServices; 2.dll的添加和函数的声明(注意一定要放在函数(方法)的外面) [DllImport("Use ...

  6. 在一个解决方案中用C#测试调用C++ DLL

    VS2015,在解决方案中新建一个C++ DLL项目,一个C# Winform项目: dllmain.cpp; #include "stdafx.h"BOOL APIENTRY D ...

  7. [.NET开发] C#编程调用Cards.dll实现图形化发牌功能示例

    本文实例讲述了C#编程调用Cards.dll实现图形化发牌功能.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; usi ...

  8. 非常好的dllimport 文章--在 C# 中通过 P/Invoke 调用Win32 DLL

    http://msdn.microsoft.com/zh-cn/library/aa686045.aspx 在 C# 中通过 P/Invoke 调用Win32 DLL 发布日期 : 1/13/2005 ...

  9. 如何在MFC客户端调用COM DLL

    也许有人会认为这是一个非常小儿科的问题.不过,我还是颇花费了一点时间和精力才搞清楚的.OK, 下面简单谈一下如何去做. 可以有很多方法生成一个COM DLL.比如,VB, VC++, DELPHI等等 ...

最新文章

  1. 武汉东方7神话服饰有限公司
  2. dubbo下使用selectKey获取自增主键为0问题
  3. 图像识别:微信跳一跳机器人
  4. python做一个单项选择题系统_(完整版)python选择题word打印版
  5. jar包部署到window系统服务器的办法
  6. 告别.net ! 2年多了,舍不得!
  7. 腾讯第一季度总收入1353亿元 净利润478亿元
  8. python 3.28 第三章 函数嵌套/名称空间//内置名称空间/全局名称空间/局部名称空间/作用域/函数对象/闭包函数。...
  9. 编程时,如何在vs中更换舒服的代码字体
  10. 项目管理 之一 软件开发生命周期(软件开发过程、瀑布模型、敏捷开发等)
  11. 【NVIDIA】Win10 + CUDA10 + cuDNN 安装教程(转载)
  12. Python源码学习笔记:Python万物皆对象
  13. 垃圾纸盒的叠法-超级实用
  14. 兰德系数(Rand Index)
  15. [乐意黎原创] JavaScript中数组使用总结
  16. python 之mechanize
  17. 955.WLB 不加班公司名单(持续更新)
  18. python web server 知乎_“知乎网”技术方案初探
  19. 手把手教大家在mac上用VMWare虚拟机装win7
  20. 用计算机怎么计算sh 3,舍伍德数Sh计算公式与在线计算器_三贝计算网_23bei.com

热门文章

  1. 基于Python+Tkinter GUI 的模式识别水果分类小程序
  2. threejs个人笔记
  3. NVIDIA GRID 和 NICE DCV 技术用于实现 Linux 和 Windows® 图形加速虚拟桌面
  4. 设计模式(八)Abstract Factory模式
  5. 哪里能够下载任意地区的高清卫星影像/地图?
  6. 沟通口才培训:学好精准表达!
  7. 【人工智能的数学基础】约束优化问题与对偶问题(Dual Problem)
  8. 学习计划表[最新更新2012-04-16]
  9. 没想到H5也是黑灰产的攻击重点?
  10. viewstate java_ASP.NET之ViewState