当前位置: 首页 > wzjs >正文

淄博建网站多少钱微信搜索seo优化

淄博建网站多少钱,微信搜索seo优化,公司网站企业文化怎么做,基层消防力量建设背景:接受的项目代码有一年了,对应C#调用C中 结构体托管和非托管也有了一些自己的了解。托管那么C#中不需要再次定义这个结构体,非托管需要重新定义结构体中每个参数,在我的项目中两种都用到了,还用到第三种分隔符传入…

背景:接受的项目代码有一年了,对应C#调用C++中 结构体托管和非托管也有了一些自己的了解。托管那么C#中不需要再次定义这个结构体,非托管需要重新定义结构体中每个参数,在我的项目中两种都用到了,还用到第三种分隔符传入复杂数据结构的。

1、托管

使用 C++/CLI(托管 C++)桥接 C++ 和 C#

这种方式推荐用于调用复杂结构、类方法、STL 的情况。你可以:

  1. 在 C++/CLI 中封装 native C++ 结构体和函数。

  2. 在 C++/CLI 中创建托管类(public ref class)暴露给 C#。

  3. 在 C# 中引用编译后的 C++/CLI DLL(.NET Assembly)。

示例结构

① Native C++ 结构体(NativeLib.h)

#pragma once
struct MyStruct {int a;double b;double Sum() const {return a + b;}
};

② C++/CLI 托管桥(ManagedBridge.cpp)

#include "NativeLib.h"public ref class MyStructWrapper {
private:MyStruct* nativeStruct;
public:MyStructWrapper(int a, double b) {nativeStruct = new MyStruct{ a, b };}~MyStructWrapper() {delete nativeStruct;}double Sum() {return nativeStruct->Sum();}
};

③ C# 中使用

class Program {static void Main() {var wrapper = new MyStructWrapper(3, 4.5);double result = wrapper.Sum();Console.WriteLine($"Sum = {result}");}
}

2、非托管

使用 P/Invoke 调用 C++ DLL(C 接口)

C++ 不支持直接导出类或结构体的方法给 P/Invoke,需要封装为 C 接口(extern "C"),只传结构体作为参数。

🔧 示例结构体 + 导出方法(NativeLib.cpp)

extern "C" {struct MyStruct {int a;double b;};__declspec(dllexport) double Sum(MyStruct s) {return s.a + s.b;}
}


C# 中 P/Invoke 调用

[StructLayout(LayoutKind.Sequential)]
public struct MyStruct {public int a;public double b;
}class Program {[DllImport("NativeLib.dll")]public static extern double Sum(MyStruct s);static void Main() {MyStruct s;s.a = 3;s.b = 4.5;double result = Sum(s);Console.WriteLine($"Sum = {result}");}
}

🆚 比较总结

方法优点缺点
C++/CLI支持类、方法、继承、STL等复杂结构只能用于 Windows,编译设置复杂
P/Invoke跨平台,结构体/函数易绑定不支持类方法,要手动封装为 C 接口

http://www.dtcms.com/wzjs/479377.html

相关文章:

  • 网站建设公司怎么盈利淘宝代运营1个月多少钱
  • 网站导航栏条源码我是新手如何做电商
  • 新疆智能人社下载国内seo做最好的公司
  • wordpress colormag一点优化
  • 请简述网站制作流程seo精准培训课程
  • 做学校的网站推广发展前景人工智能培训一般多少钱
  • 外贸网站建设560网站出租三级域名费用
  • 怎么查询网站有没有做网站地图各大网址收录查询
  • 电脑自带的做网站叫什么软件百度秒收录
  • 网站服务空间网推拉新app推广平台
  • 做网站页面用什么东莞企业网站排名优化
  • html好看的网站的代码潍坊seo培训
  • github中文官网入口苏州网站优化公司
  • 上海建网站公司如何免费发布广告
  • 日照便宜做网站学做网站培训班要多少钱
  • 信息型企业网站有哪些如何创建自己的网站
  • 遵义网站制作教程宁德市地图
  • 常州网站制作公司有哪些搜索到的相关信息
  • 怎么把网站做10万ipseo关键词优化如何
  • 做商品网站数据库有哪些内容seo快速排名软件品牌
  • 日本做暖网站淘宝运营培训班
  • 有哪些做外贸的网站爱站长工具综合查询
  • 武汉网站建设哪家便宜网络域名怎么查
  • 做网站的思路怎么写廊坊网站seo
  • 网站建设的工具是网络零售的优势有哪些
  • 网站域名行业动态淘宝seo是什么意思
  • 萍乡网站优化关键词搜索指数
  • 邯郸做网站多少钱域名注册网
  • 公司设计网站需要包含什么资料基本seo技术在线咨询
  • win7如何安装iis来浏览asp网站网站批量收录