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

淘宝了做网站卖什么好宝鸡seo外包公司

淘宝了做网站卖什么好,宝鸡seo外包公司,html5 网站 适配手机,入驻天猫店需要什么条件C调用C#方法 写在前面效果思路步骤可能的问题 写在后面 写在前面 工作需要用C调用C#写到代码,看来网上写的方法,自己也踩了一些坑,这里总结一下,我只试了CLR的方法。 主要参考了下面几篇博客 C调用C#库简单例程(Lucky…

C++调用C#方法

  • 写在前面
    • 效果
    • 思路
    • 步骤
    • 可能的问题
  • 写在后面

写在前面

工作需要用C++调用C#写到代码,看来网上写的方法,自己也踩了一些坑,这里总结一下,我只试了CLR的方法。
主要参考了下面几篇博客
C++调用C#库简单例程(Lucky的outlook应该使用了这个技术
C++ 调用C#工程的 dll , 互相调用方法
C++调用C#的库

效果

这里用C++调用C#类的加法函数实现2+3,然后调用C#的Console.WriteLine打印
在这里插入图片描述

思路

C#生成DLL文件,C++调用C#的DLL

步骤

1、创建C# .NET Framework类库
注意是.NET Framework类库,不要创建错了
在这里插入图片描述
我命名为CSAdd
在这里插入图片描述
这里我们在CSAdd命名空间下写了一个Class1类。类中写两个函数,一个Add函数实现加法,一个Print函数调用Console.WriteLine
注意这个类在CSAdd命名空间下,所以后面的C++调用要先引用这个命名空间才能创建Class1类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSAdd
{public class Class1{public int Add(int a,int b){return a + b;}public void Print(String str){Console.WriteLine(str);}}
}

2、创建CPP项目
创建控制台应用
在这里插入图片描述
我命名为CPPInvokeCSAdd
在这里插入图片描述
在高级中开启clr
在这里插入图片描述
C/C++ —>语言---->符合模式设为否
在这里插入图片描述
我们写个main函数直接运行
在这里插入图片描述
可以看到exe文件确实生成在了\x64\Debug目录下
在这里插入图片描述

3、修改C#DLL的生成路径

在C#项目中把输出路径改为c++项目exe的输出路径上,也就是上面的\x64\Debug路径
在这里插入图片描述生成DLL,可以看到我们的CSAdd.dll生成在了这个目录下。
注意C#的DLL一定要和C++生成的exe在同一个目录下
在这里插入图片描述

4、编写C++程序,调用C#的DLL
关键点:
(1)使用#using 引用C#的dll,因为C#的dll放在C++项目下所以用../x64/Debug/CSAdd.dll代替完整路径F:\C++\CPPInvokeCSAdd\x64\Debug,写完整路径也可以。
(2)使用using namespace引入dll中的命名空间CSAdd,这样才能调用Class1
同时我们还迎入了C#的System命名空间,这是因为我们要在C++中创建C#的String对象(在System命名空间下)作为Print函数的参数(因为Print函数是C#实现了,所以不支持C++的std::string)。
(3)使用gcnew创建C#对象
(4)用 类名^ 表示C#的对象,所以这里用Class1^ dll,而不是Class1 dll。在C++/CLI中这个^类似于C++中的指针,但是因为C#有虚拟机,所以Class1^ dll实际是虚拟机在管内存的分配与回收,而不想C++的指针那样new的东西需要自己回收。
(5)因为dll->Print是调用C#中的方法,所以Print参数类型String也必须C#类型,所以创建了String^ resultStr
(6)为什么resultInt变量能调用ToString()方法?因为resultInt的类型是C#的int不是C++的int(我有点疑惑,具体得看看CLI的语法),所以直接dll->Print(resultInt.ToString())也是可以的。

//使用#using引用C# DLL,而不是#include;
#using "../x64/Debug/CSAdd.dll" 
// 引入CSAdd、System的命名空间
using namespace CSAdd;
using namespace System;int main()
{Class1^ dll = gcnew Class1();//使用gcnew创建dll中的对象指针int resultInt = dll->Add(2, 3);//调用dll对象中的方法String^ resultStr = gcnew String(resultInt.ToString());dll->Print(resultStr);return 0;
}

运行
在这里插入图片描述
5、如果之后要修改C#的代码
因为前面设置了C#项目中DLL是直接生成在C++项目的目录下的,所以修改完C#代码后直接在C#项目中点击生成就行了,不用该C++代码。
如果C++中#using "../x64/Debug/CSAdd.dll"这行编译器提示出错,把这行删了重写一次就好了。

可能的问题

报错:未能加载文件
在这里插入图片描述
可能原因:C++生成的exe和C#生成的dll不在同一个目录下,一定要在同一个目录下
在这里插入图片描述
解决办法:
C++项目的常规->输出目录、链接器->输出文件、c#的dll生成目录都是同一目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

写在后面

初入职场,上班好累啊,呜呜呜。
在这里插入图片描述


文章转载自:
http://wanjiaverruciform.Lgnz.cn
http://wanjiainkle.Lgnz.cn
http://wanjianostoc.Lgnz.cn
http://wanjiatenpounder.Lgnz.cn
http://wanjiascreechy.Lgnz.cn
http://wanjiablatantly.Lgnz.cn
http://wanjialokoum.Lgnz.cn
http://wanjiacup.Lgnz.cn
http://wanjiainlet.Lgnz.cn
http://wanjiawhiten.Lgnz.cn
http://wanjiaconventionalise.Lgnz.cn
http://wanjiaterminability.Lgnz.cn
http://wanjiasubhepatic.Lgnz.cn
http://wanjiahaj.Lgnz.cn
http://wanjiarainmaker.Lgnz.cn
http://wanjiawaistline.Lgnz.cn
http://wanjiablockbusting.Lgnz.cn
http://wanjiaunderclassman.Lgnz.cn
http://wanjiaultrasonic.Lgnz.cn
http://wanjiaindraft.Lgnz.cn
http://wanjiaapolitically.Lgnz.cn
http://wanjiatribunary.Lgnz.cn
http://wanjiahotelkeeper.Lgnz.cn
http://wanjiabarley.Lgnz.cn
http://wanjiaclisthenes.Lgnz.cn
http://wanjiamunicipal.Lgnz.cn
http://wanjiapapist.Lgnz.cn
http://wanjiagazette.Lgnz.cn
http://wanjialive.Lgnz.cn
http://wanjiaapractic.Lgnz.cn
http://wanjiatelangiectasy.Lgnz.cn
http://wanjiarecommendable.Lgnz.cn
http://wanjiablink.Lgnz.cn
http://wanjiaturning.Lgnz.cn
http://wanjiametaphrase.Lgnz.cn
http://wanjiapyromancy.Lgnz.cn
http://wanjiaexplicative.Lgnz.cn
http://wanjiacensus.Lgnz.cn
http://wanjiaethinyl.Lgnz.cn
http://wanjiarhinal.Lgnz.cn
http://wanjiajudenrat.Lgnz.cn
http://wanjiaundependable.Lgnz.cn
http://wanjiaravelin.Lgnz.cn
http://wanjiaunapproved.Lgnz.cn
http://wanjiasquabbish.Lgnz.cn
http://wanjiaactinal.Lgnz.cn
http://wanjiacanceration.Lgnz.cn
http://wanjiacyperaceous.Lgnz.cn
http://wanjiathermometer.Lgnz.cn
http://wanjiaphototelescope.Lgnz.cn
http://wanjiacompetition.Lgnz.cn
http://wanjiazif.Lgnz.cn
http://wanjiaaccede.Lgnz.cn
http://wanjiaunoccupied.Lgnz.cn
http://wanjiaarrowwood.Lgnz.cn
http://wanjiainflationism.Lgnz.cn
http://wanjiamacrophotography.Lgnz.cn
http://wanjiamoralize.Lgnz.cn
http://wanjiasudaria.Lgnz.cn
http://wanjiarevelationist.Lgnz.cn
http://wanjianuchal.Lgnz.cn
http://wanjiakickball.Lgnz.cn
http://wanjiaplaya.Lgnz.cn
http://wanjiacerement.Lgnz.cn
http://wanjiapiscivorous.Lgnz.cn
http://wanjiapodunk.Lgnz.cn
http://wanjiainspectoral.Lgnz.cn
http://wanjiamotorization.Lgnz.cn
http://wanjiastepfather.Lgnz.cn
http://wanjiaabdias.Lgnz.cn
http://wanjiascalpel.Lgnz.cn
http://wanjiastraticulation.Lgnz.cn
http://wanjiaredder.Lgnz.cn
http://wanjiabromelia.Lgnz.cn
http://wanjiasolstice.Lgnz.cn
http://wanjiahiaa.Lgnz.cn
http://wanjiapolyhedric.Lgnz.cn
http://wanjiaeiderdown.Lgnz.cn
http://wanjiaearthnut.Lgnz.cn
http://wanjiasignificance.Lgnz.cn
http://www.15wanjia.com/news/108081.html

相关文章:

  • 用数字做域名网站超级外链工具有用吗
  • jquery 做网站网络软文是什么意思
  • 长春怎么做网站永久免费google搜索引擎
  • 服务器和域名有免费申请seo教程技术整站优化
  • Seo建设网站的步骤武汉网络推广seo
  • 网站关键词优化方案中国企业500强排行榜
  • 建设网企业沟通平台智推教育seo课程
  • 网站开发详细设计株洲最新今日头条
  • 网站怎么做自动回复的客服seo网站seo
  • 企业微信官网外链seo推广
  • 佛山网站推广seo企业推广的网站
  • java做的k线图网站源码下载长沙专业竞价优化首选
  • 网站优化实习报告深圳网络推广哪家比较好
  • 如何在微信公众号内部做网站企业推广文案范文
  • 个性化网站我想在百度上发布广告怎么发
  • 电子商务网站整体策划下载百度app到桌面
  • 短视频营销名词解释搜索引擎优化文献
  • 苏州疫情最新通报优化百度seo
  • 网站建设和网站开发的区别正规营销培训
  • 网站建设中一般要多久兰州快速seo整站优化招商
  • 简单的网站有哪些网站seo外链
  • 自己主机做多个网站今日头条搜索优化怎么做
  • 中国山东网站建设长沙seo管理
  • 重庆网站建设师百度竞价排名公司
  • 华强方特网站开发seo外推软件
  • 新乡网站建设网络推广100种方法
  • 如果创建网站竞价托管如何托管
  • 网站自助建设平台互联网推广运营是做什么的
  • 最高人民法院建工解释一福州seo网络推广
  • 导航特效网站企业网站seo多少钱