c# [ImportDll()] 知识小结

本文介绍了在C#项目中如何使用[ImportDll()]调用非托管C++DLL的过程。内容涉及.NET托管与非托管的区别,以及在IIS发布时遇到的问题和解决方案。在调用非托管DLL时,需通过P/Invoke并指定EntryPoint以避免命名冲突,同时使用MarshalAs指定参数类型转换规则。在实际部署时,应注意DLL路径问题,避免使用绝对路径导致远程调用失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这周在做公司的一个C#项目中,要写一个webservice提供一个下载方法,之前公司有过,但是要整改,于是这种鸟屎摊子又交给了我,其中一个密文流的下载中要应用我们小组另一伙人用C++写的四个dll, 这些DLL是由我们自己编写的,非.NET 托管,这是一个麻烦事;

如果用 IDE往工程里add reference时,它会提示这几个dll是没有注册的,不是.NET托管的。好吧,顺便补充一下.NET托管和非托管。


具体官方术语是:

托管DLL就是能够在公共语言运行库(Common Language Runtime,简称CLR)中能够直接引用的,并且扩展名为“DLL”的文件。具体所指就是封装各种命名空间所在的DLL文件,如System.dll

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值