请教个C#调用C的问题

wish_cn 2012-05-03 11:47:21
C#声明如下:



[DllImport("xxx.dll", EntryPoint = "some_function", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]



但C中函数some_function为cdecl调用方式。

据我所知Windows x64上没有cdecl, stdcall区别,统一为寄存器 + R2L压栈,被调方清栈的调用方式。因此貌似在x64下没有问题。

但在x86上是否会有问题 或 隐患?
对C#和p/invode不了解。哪位高手能帮忙解释一下。谢谢!
...全文
120 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wish_cn 2012-05-03
  • 打赏
  • 举报
回复
顶一下,没人在吗?
bdmh 2012-05-03
  • 打赏
  • 举报
回复
CallingConvention = CallingConvention.Cdecl
调用方式必须一致

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧