zhiyaormb 2023-04-27 18:37 采纳率: 23.1%
浏览 17
已结题

C#调用C++ dll的问题

C#调用C++ dll的函数,在C++里面用QueryPerformanceCounter和QueryPerformancePrequency在底层记录某个导出函数执行消耗的时间(记录函数开始的时间和结束的时间,两者相减),在C#里面也用类似的方法记录该函数(从C++ DLL导出)执行的时间(C#里面没开多线程),经常出现在C#里面记录的时间比C++里面记录的时间多数个毫秒的情况。这个应用对时间非常敏感。不知道这个现象是什么原因造成的,以及有没有解决的办法。

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-04-27 19:20
    关注

    这个是接口调用的开销,因为C#底层是通过LoadLibrary动态加载调用的,而不是静态库直接调用的。
    解决办法是C++再写一个函数,那里直接调用返回时间值,C#直接取其中的值。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 专家已采纳回答 5月11日
  • 修改了问题 4月27日
  • 创建了问题 4月27日

悬赏问题

  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询