社区
C#
帖子详情
请问如何在C#中调用非托管代码中的类?(C++生成)
cambest
2002-12-16 08:05:41
我的导师要我帮她设计界面,MFC我懂得不多,但是对.NET库到比较熟悉。只是我哪个导师只会C#,她写的底层驱动是用C++写的,我怎么引用她写的DLL中的类?
...全文
51
6
打赏
收藏
请问如何在C#中调用非托管代码中的类?(C++生成)
我的导师要我帮她设计界面,MFC我懂得不多,但是对.NET库到比较熟悉。只是我哪个导师只会C#,她写的底层驱动是用C++写的,我怎么引用她写的DLL中的类?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dy_2000_abc
2002-12-20
打赏
举报
回复
指定/clr开关的目的是告诉编译器生成IL而不是本地代码,如果你使用Vs.net的话,/clr应该是默认的,不用管它了。
cambest
2002-12-18
打赏
举报
回复
哎呀,我看了很久都没有发现哪个/CLR选项,dy_2000_abc(芝麻开门) :谢谢你了!TO: brbrm(般若波若密),我哪个老师确实是个年轻的女孩子!她儿子才6岁!
ilian
2002-12-17
打赏
举报
回复
gz
dy_2000_abc
2002-12-17
打赏
举报
回复
我没有做过具体的工作,从理论上讲,使用cl重新编译那些代码,基本上就可以在c#中调用它们,比如:
文件:abc.cpp
#include "stdafx.h"
namespace abcd
{
public __gc class abc
{
public:
abc();
~abc();
int get();
};
abc::abc()
{}
abc::~abc()
{}
int abc::get()
{
return 1;
}
}
编译这个文件时,要指定/clr开关。其他的开关请参照msdn的相关章节
使用c#调用abc.dll,添加abc.dll:
using System;
using abcd;
namespace abc
{
public class abc
{
static void Main()
{
abcd.abc a=new abcd.abc();
Console.WritLine(a.get());
}
}
}
brbrm
2002-12-16
打赏
举报
回复
MFC完全不懂也不行. 你至少需要拿到别人类和方法的原形,然后在C#中建立自己的映射类.
using System.Runtime.InteropServices
class ClsCSharp
{
DllImport("clscplus.dll"); //别人的DLL
public static extern void(int x ...); //DLL中的方法,注意名称返回
//值类型 参数都必须一致
...
}
然后在你的方法中就可以直接调用了.
随便问一下,你导师是女的?你好幸福
cambest
2002-12-16
打赏
举报
回复
“我的导师要我帮她设计界面,MFC我懂得不多,但是对.NET库到比较熟悉。只是我哪个导师不会C#,她写的底层驱动是用C++写的,我怎么引用她写的DLL中的类?”
打错了。
C#
C++
混合编程示例(
C#
调用
非
托管
C++
类
)
演示如何在
C#
中
调用
非
托管
C++
的
类
,是
C#
C++
的混合编程技术的简单示例,VS2010开发
C#
调用
C/
C++
Dll
中
函数实例
代码
实例
代码
说明如何在
托管
的
C#
代码
中
调用
非
托管
的Win32 API或者自己用C/
C++
写的Dll
中
的函数,以及如何传递输入、输出字符串参数,结构
类
型参数等问题。
上期技术CTP行情交易接口.Net封装完整版
将
非
托管
C++
库转换为
托管
库,供.Net程序
调用
。包括行情接口和交易接口。 Struct.h头文件修改自海风版
C#
的Struct.cs文件,
非
常感谢! CSharpMdTest
C#
行情接口测试实例,跟上期技术官方提供的例子一致 ...
托管
代码
调用
非
托管
代码
的方式总结
基于.net开发,
托管
的便利好处自然不用再多言,垃圾回收、内存管理等等,加之强大的FCL
类
库作支持后盾,一般情况下我们都不会直接...在这种情况之下,我们便要考虑到
托管
代码
对于
非
托管
代码
的
调用
问题了,这种技术称
C#
中
什么是
非
托管
代码
?
托管
代码
和
非
托管
代码
有什么区别
COM(Component Object Model)组件:COM 是一种面向对象的二进制接口标准,可以编写使用 C/
C++
编写...在
C#
中
,
托管
代码
和
非
托管
代码
是两种不同
类
型的
代码
,它们在内存管理和执行环境上有所不同。)技术在
C#
中
调用
。
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章