VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4904|回复: 30

请问高手,可以把C语言嵌入到C#中吗

[复制链接]

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-26 20:40:01 | 显示全部楼层 |阅读模式
因为用C来开发UI我不太会,但是应用有一段又必须用C,
所以有此一问

或者能在C#中引用C的头文件嘛

谢谢大家的回答
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-18 14:30:01 | 显示全部楼层
写成DLL给.net调用就好了。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-18 16:45:02 | 显示全部楼层
写成DLL
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-18 20:45:02 | 显示全部楼层
“嵌入”肯定是不行的了。。。

你可以用C写“标准Dll”,用C#去调用。。
回复

使用道具 举报

0

主题

10

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-2-18 21:00:01 | 显示全部楼层
不能...
解决方法同上.
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-20 00:30:01 | 显示全部楼层
这是一个c#调用c++的看对你有没有帮助
使用命名空间:
using System.Runtime.InteropServices;
using System.Text;

///////////////////////////////////////////////////////////////////
把dll放到相应的bin目录下

声明dll:
[DllImport("msDll.dll")]
public static extern int CalculateStr(StringBuilder szExp,out double pfOut,StringBuilder szErr,int nErrLen);

使用方法:
StringBuilder strT1=new StringBuilder(100);
double fResult=0;
int nRet;
StringBuilder szErr =new StringBuilder(30);
strT1.Append("1/sin90");

nRet=CalculateStr(strT1,out fResult,szErr,30);
if(nRet==1)
{
        Response.Write(fResult);
}
else
{
        Response.Write(szErr);
}

/////////////////////////////////////////////////////
回复

使用道具 举报

0

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-2-20 21:45:01 | 显示全部楼层
unsafe编程
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-2-21 11:15:02 | 显示全部楼层
是这样的,我有一个头文件里有很多的结构定义,
我不想手动转换到C#里面,因为设备提供商有可能改变,

我想能不能在C#里面引用这个头文件
回复

使用道具 举报

0

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-2-21 13:30:01 | 显示全部楼层
不错的想法
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-2-21 16:00:01 | 显示全部楼层
ms说C#借鉴了java的思想,可是这个怎么不行呢,java可以嵌入c的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表