我有一个c语言写好的工程文件。怎么用封装成dll文件,c#还要调用这个dll
1条回答
- hikarisamax 2016-03-01 03:28关注
类似这种写法
[DllImport("KERNEL32.DLL", EntryPoint="MoveFileW", SetLastError=true,
CharSet=CharSet.Unicode, ExactSpelling=true,
CallingConvention=CallingConvention.StdCall)]
public static extern bool MoveFile(String src, String dst);要使用using System.Runtime.InteropServices;命名空间,建议详细的用法看看msdn上说明,涉及到String类型是要看清楚是单字节还是字节等编码问题,涉及到指针内存分配还要考虑分配与释放的时机
c#的dll调用和c/c++的不一样,要考虑是stdcall还是cdecl,参数传递的手法要一致,否则会泄露内存甚至调用失败的
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥15 stable diffusion
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条