怎么样用C#不注册登录时系统运行流程 调用方法调用C++写的DLL控件

你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
问题是 - 我想用C++编写一个模板类,把它放在一个DLL中,然后从我的C#项目中调用它。可能吗?你能否提供关于如何做的参考或文章?
我想将DLL写入非托管的 C++中
我认为这个问题可能会帮助你:
模板类无法导出。直到有人实例化它才存在。你应该明确地实例化它,然后像往常一样导出它。
您可以像创建任何其他DLL一样创建它 -
DLL背后的主要思想是它可以用任何编程语言创建,并且可以与其他任何编程语言一起使用。请记住,C++是非托管的,因此必须谨慎对待。查找实例(MSDN论坛)。
通常,使用DllImport装饰器从您在C++中创建的DLL文件导入函数。来自MSDN的示例:
using System.Runtime.InteropS // DllImport
public class Win32 {
[DllImport("User32.Dll")]
public static extern void SetWindowText(int h, String s);
通过使用C++/CLI,您可以将您的C++类作为.NET类使用兼容功能。但是,您不能公开您的模板定义,但可能能够使用专门用于该模板的具体类。
当您构建C++/CLI类时,您可以像引用任何其他.NET程序集一样引用它。
据我记得有一个问题。
有可能让C#使用C++ Dll(托管和非托管)
非托管C++可以使用C#Dll(您需要通过COM和界面来完成此操作)。
我会看看我能否找到更详细的信息
要回复问题请先或
最新活动: 4 天前
关注: 0 人&>&C#(Csharp)调用C++编写的DLL动态链接库方法详解(含实例)
C#(Csharp)调用C++编写的DLL动态链接库方法详解(含实例)
上传大小:265KB
经常会用到C#(Csharp)调用C++编写的DLL(动态链接库)。由于C#(Csharp)是.NET框架下的托管代码,而C++一般都采用非托管代码,这样调用起来就会出现类型转换、释放资源等问题,该文档详细介绍了C#(Csharp)调用C++编写的DLL(动态链接库)的方法。很不错哦,和大家分享:)
综合评分:3
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有27条
新手学习使用。
值得学习,好好收藏!
很好的,可以参考
综合评分:
积分/C币:5
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
C#(Csharp)调用C++编写的DLL动态链接库方法详解(含实例)
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
C#(Csharp)调用C++编写的DLL动态链接库方法详解(含实例)C#调用C++DLL的方法_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C#调用C++DLL的方法
&&C#调用C++DLL的方法
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢C#调用C++的dll两种方法(托管与非托管)_其它编程-织梦者
当前位置:&>&&>& > C#调用C++的dll两种方法(托管与非托管)
C#调用C++的dll两种方法(托管与非托管)
C#调用C++的方式分为两种:(1)非托管的方式进行调用;(2)采用托管的方式进行调用。
一、使用非托管类调用C++的dll。
1、首先在vs2010新建项目选择win32应用程序,并设置为DLL,如下图所示
5、在dllConsoleApplication1项目上新建一个CPPDLL类,编写以下代码:
usingSystem.Collections.G
usingSystem.L
usingSystem.T
usingSystem.Runtime.InteropS //必须添加,不然DllImport报错
namespacedllConsoleApplication1
classCPPDLL
[DllImport(&MyDLL.dll&, CharSet =
CharSet.Ansi)]
//引入dll,并设置字符集
//[DllImport(&MyDLL.dll&)] //可以替代上一句代码
publicstaticexternintShow();
classProgram
staticvoidMain(string[] args)
CPPDLL.Show();
Console.ReadLine();
6、运行结果:
2、在前面的托管DLL项目中添加Functions.h头文件和Functions.cpp源文件实现利用OpenCV库输出显示图片。
在Functions.h中:
voidshow();
在Functions.cpp中:
#include&Functions.h&
#include&opencv2/opencv.hpp&
voidshow()
Mat img = imread(&E:\\图库\\abc.jpg&);
imshow(&src&,img);
waitKey(0);
3、使用C++托管类进行封装。新增clrClass类。并且点击“解决方案”中的项目托管DLL-&属性-&配置属性-&公共语言运行时支持-&公共语言运行时支持(、\clr),然后进行编译生成DLL。
在clrClass.h中有如下代码:
#pragmaonce
public ref class clrClass
clrClass(void);
~clrClass(void);
voidshowImage();
在clrClass.cpp中有如下代码:
#include&clrClass.h&
#include&Functions.h&//自添加
clrClass::clrClass(void)
clrClass::~clrClass(void)
voidclrClass::showImage()
4、C#调用C++生成的Dll文件
新建一个C#控制台程序,添加引用-&浏览-&选择生成的DLL添加。
以上就是C#调用C++的dll两种方法(托管与非托管)的全文介绍,希望对您学习和使用程序编程有所帮助.
这些内容可能对你也有帮助
更多可查看其它编程列表页。
猜您也会喜欢这些文章C#调用动态库,C#调用C++DLL-360文档中心
360文档中心免费免积分下载,各行业
知识、技术、信息等word文档下载网站
C#调用动态库,C#调用C++DLL
C#调用C++ DLL与参数的传递C#调用C++编写的COM DLL封装库时会出现两个问题:
1.数据类型转换问题
2.指针或地址参数传送问题
首先是数据类型转换问题。因为C#是.NET语言,利用的是.NET的基本数据类型,所以实际上是将C++的数据类型与.NET的基本数据类型进行对应。
例如C++的原有函数是:
int __stdcall FunctionName(unsigned char param1, unsigned short param2) 其中的参数数据类型在C#中,必须转为对应的数据类型。如:
[DllImport(“ COM DLL path/file ”)]
extern static int FunctionName(byte param1, ushort param2)
因为调用的是__stdcall函数,所以使用了P/Invoke的调用方法。其中的方法FunctionName必须声明为静态外部函数,即加上extern static声明头。我们可以看到,在调用的过程中,unsigned char变为了byte,unsigned short变为了ushort。变换后,参数的数据类型不变,只是声明方式必须改为.NET语言的规范。
我们可以通过下表来进行这种转换:
免费下载该文档:
C#调用动态库,C#调用C++DLL的相关文档搜索
C#调用 C++DLL 的方法首先,理解托管代码与非托管代码的区别: 1.托管代码所申请...PB调用C#的DLL动态库方法... 4页 免费
VB调用C程序的方法—动态... 4页...VS2010 C#调用C++ DLL文件(图文讲解)_计算机软件及应用_IT/计算机_专业资料。背景...VS2010制作调用动态库dl... 暂无评价 14页 免费 C#下开发及调用dll文件 6页...C#调用 C++DLL 的方法首先,理解托管代码与非托管代码的区别: 1.托管代码所申请...C#下开发及调用dll文件的... 6页 1下载券
C#调用C++动态链接库DLL... 6...c#调用 c++dll 接口及回调函数在合作开发时,C#时常需要调用 C++DLL,当传递参数...C#调用动态链接库 18页 免费
C#调用其他语言编写的dl... 2页 免费
C# 调用...有关C#调用C++的dll的一些问题_计算机软件及应用_IT/计算机_专业资料。有关C#...JAVA如何调用C或者C++生... 6页 免费
C#调用动态库,C_调用C++... 10页 ...使用C++开发dll供C#调用_计算机软件及应用_IT/计算机_专业资料。本文详细描述了如何使用C++开发dll供C#调用。并且对于不精通C++开发的程序员,可在C++编写的dll中调用...讯组件的时候,通过 C#来开发应用软件时,就需要利用 DllImport 特性进行方法调用...创建一个 C++的动态库项目: 3. 在应用程序设置中,选择“DLL”,其他按照默认...1 c# 调用 c++动态链接库时 的方 法 动态加 载DL L需 要使用 Windows API 函数 :LoadLibrary、Get— ProcAddress 以及 FreeLibrary 。我们可 以使用 DllImpo...C++与 C#互调 dll 的实现步骤,dll 动态链接库的共享在一 些大型项目中有一定...c#调用 c++类步骤(c++/cli,可直接使用 C++类) c++/cli 简介:C++/CLI 标准是...“类”,类名设置为“dld”, //即dynamic loading dll 的每个单词的开头字母...C#调用动态库,C_调用C++... 10页 1下载券
C#调用动态库,C#调用C++... ...

我要回帖

更多关于 请先调用初始化接口 的文章

 

随机推荐