dll问题,请教各位大神

fcbayernck 2014-04-27 05:57:16
现在面临着一个问题
已经完成:
dll产生数据并且打包,export一个变量给C#程序使用,通过一个循环不断地更新该变量的值。
问题
在这样程序的前提下,怎么能够使C#程序正确的调用dll产生的数据。C#程序写的是调用export出来的变量的数值,如何能保证不重复调用同一数据呢....
...全文
335 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤客天涯 2014-05-18
  • 打赏
  • 举报
回复
引用 6 楼 fcbayernck 的回复:
[quote=引用 5 楼 jason_wentzel 的回复:] 采用回调的方式 ,dll回调c#中的函数,dll数据变通就回调c#,这样c#肯定取到的都是不同的数据
现在出现的问题不仅仅在这块了,C#调用的时候发现C++ dll中需要的程序完全没有运行.... C#调用C++ dll中函数的时候是怎样一个工作原理呢,是只要载入了就直接运行了还是说需要有其他方面的使用才可以执行呢.... 在网上也没找到C#调用函数时候写的详细的帖子.... 请大神赐教....[/quote] 1.首先你要确实你dll与c#程序运行的平台是不是一样,不能一个是32位另一个是64位的,c#默认是64位的,c++默认的32位的,这样你c#调用32位的dll不会成功的。 2.c++需要导出函数,c#以调用dll函数的形式调用c++dll,但你的需求是需要c++调用你c#中的函数来实现c++数据变通主动通知c#,这就是回调,你可以参考我以前的回贴http://bbs.csdn.net/topics/390716356
fcbayernck 2014-05-18
  • 打赏
  • 举报
回复
引用 5 楼 jason_wentzel 的回复:
采用回调的方式 ,dll回调c#中的函数,dll数据变通就回调c#,这样c#肯定取到的都是不同的数据
现在出现的问题不仅仅在这块了,C#调用的时候发现C++ dll中需要的程序完全没有运行.... C#调用C++ dll中函数的时候是怎样一个工作原理呢,是只要载入了就直接运行了还是说需要有其他方面的使用才可以执行呢.... 在网上也没找到C#调用函数时候写的详细的帖子.... 请大神赐教....
孤客天涯 2014-05-18
  • 打赏
  • 举报
回复
采用回调的方式 ,dll回调c#中的函数,dll数据变通就回调c#,这样c#肯定取到的都是不同的数据
hhhh63 2014-04-28
  • 打赏
  • 举报
回复
1. 用消息队列机制,先进先出,就不会有重复了。这是比较好的方法。 2. 加一个标志变量,用过置1,新存用零。
oyljerry 2014-04-28
  • 打赏
  • 举报
回复
生成Win32 DLL, C#可以调用这种DLL DLL内部保持一份map来看是否已经存在
fcbayernck 2014-04-28
  • 打赏
  • 举报
回复
引用 2 楼 hhhh63 的回复:
1. 用消息队列机制,先进先出,就不会有重复了。这是比较好的方法。 2. 加一个标志变量,用过置1,新存用零。
我的想法和2 的有点相似,但是就是不知道该怎么去写呢.... 至于消息队列机制,请问大神能给个讲这块的链接么....没有找到....
路人乙2019 2014-04-27
  • 打赏
  • 举报
回复
这样很难,尤其两种不同语言之间。应该导出函数,在dll中对该变量的操作同步。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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