c# webservce 调用 C++DLL 关于回调问题

问题描述

//加载子设备privatevoidlistGateway_SelectionChanged(objectsender,SelectionChangedEventArgse){if(e.AddedItems.Count>0){Devicesdev=e.AddedItems[0]asDevices;if(dev!=null){//获取子设备SmthRuntimeLib.ReadDevSingleStateData(dev.Devsn,0x0008);//调用dll接口}//SmthRuntimeLib.ReadDevStateData(dev.Devsn,string.Empty,0);}}

获取子设备这个事件调完后,就会调用TcpCallback方法中的“Application.Current.Dispatcher.InvokeAsync(newAction(()=>”这段。privateunsafestaticvoidTcpCallback(stringstrDevid,intintMsgCode,sbyte*strDataByte,intintDataLen,IntPtrpUserData){stringstrData=newstring(strDataByte,0,intDataLen,Encoding.UTF8);strPrevJson=strData;if(readFlag){myResetEvent.Set();//激活其他等待的线程readFlag=false;}//[13:42:32.646][CALLBACK][MsgFrom]:FFFFFFFFFFFFFFFF[MsgCode]:00000083[MsgData]:stringstrTemplate="[{0}][CALLBACK][MsgFrom]:{1}[MsgCode]:{2}[MsgData]:{3}"+Environment.NewLine;stringstrMsg=string.Format(strTemplate,DateTime.Now.ToString("HH:mm:ss.fff"),strDevid,intMsgCode,strData);Debug.WriteLine(strMsg);Application.Current.Dispatcher.InvokeAsync(newAction(()=>{//***************************}));}

我的问题我要把这段获取子设备放到webServce里面写成一个接口,但是写成接口他不去调用Application.Current.Dispatcher.InvokeAsync(newAction(()=>这段我该怎么改写呢?求大神们赐教!!!!!

解决方案

时间: 2024-09-16 03:58:34

c# webservce 调用 C++DLL 关于回调问题的相关文章

c++调用c#的dll时回调函数该如何处理

问题描述 c++调用c#的dll时回调函数该如何处理 比如该c#的dll中,服务器连接的函数会回调一个A方法.那么我在c++中只需要实现这个A方法,还是需要把整个回调逻辑再实现一遍.... 解决方案 回调函数在C#中用委托封装.具体的做法,你可以参考windows api中有回调的函数,以及对应的C#的调用.比如enumwindowshttp://blog.csdn.net/dengta_snowwhite/article/details/6067928 解决方案二: C#调用c++dll时,关

delphi-Delphi 调用C++ dll 回调函数

问题描述 Delphi 调用C++ dll 回调函数 用Delphi 调用容联云通信的动态库CCPAppClient.DLL,其中有一个函数 Function CCPinit( CallbackInterface: CCPCALLBACKINTERFACE ):Integer;stdcall; 参数CCPCALLBACKINTERFACE 是一个结构体指针,包含 onConnected , onConnectError 等回调函数. 在调用函数CCPinit调用成功后(返回值0),会触发CCPC

请高手帮我解决一个VB.NET调用c++ DLL 中的回调函数的问题

问题描述 我有个test.dll是c++写的dll,现在我要用vb.net调用这个dll中的SetCallback回调函数,请问怎么在vb.net中实现,请高手们具体列出代码,应我是新手,谢谢.以下是c++中的头文件定义的一部分typedefvoid(__stdcall*CCallback)(unsignedlongmsg,unsignedlonghparam,unsignedlonglparam);extern"C"voidR888DLL_API__stdcallSetCallbac

c# 调用c dll, 然后c 回调c#, 但是c# 这边变量被释放掉怎么办

问题描述 问题:我在c#传递个结构体给c的dll,然后c的dll会回调我c#里面的函数,但是发现在c的dll里面中执行到某一步,这个结构体找不到了,然后目前是c的程序里结构体释放的可能性很小,于是怀疑是c#程序这边把结构体整个释放掉了我想问下,遇到这种情况怎么办,我应该怎么避免这种情况,大神们能否给我指点一下 解决方案 解决方案二:你的问题是要找到哪里释放了,才能说怎么办解决方案三:引用1楼bdmh的回复: 你的问题是要找到哪里释放了,才能说怎么办 就在回调的时候,发现结构体找不到了.解决方案四

调用C++dll,需要传入一个函数指针,函数参数含有数组指针,用于传回数据,怎么老说我访问内存非法呀.

问题描述 C++dll代码回掉函数类型:voidcallback(BYTE*data,intnlen)//DLL设置回调函数voidSetCallBackFunc(CALL_BACK_FUNCcallback){m_callback=callback;}//dll调用回掉函数向C#传回数据voidStartDll(){BYTEbtData[100];for(bytei=0;i<100;i++){btData[i]=i;}m_callback(btData,100);//将数据通过回掉函数传回C#

C# 如何调用C++dll 类的成员函数?(请大家指教一二)

问题描述 C#如何调用C++写的MFCDLL中某一类的成员函数呢?eg...C++MFCDLL中有一个类的公共成员函数:CDllClass::icanseeu()...C#应用程序如何调用此函数....求助....先谢啦!!! 解决方案 解决方案二:实现不了解决方案三:C++自己调用都是问题,何况是其他语言解决方案四:实现不了.解决方案五:那怎么办,,,有没什么办法可以解决的...如果是一个C++的普通函数就可以调用的,(已实现)一个C++的类成员函数要怎么办?难不成把C++代码转换为C#代码?

异常-c# 程序调用外部dll文件对采集模块进行读写,不定时出现以下错误

问题描述 c# 程序调用外部dll文件对采集模块进行读写,不定时出现以下错误 问题签名: 问题事件名称: BEX 应用程序名: NangGang11.20.vshost.exe 应用程序版本: 9.0.21022.8 应用程序时间戳: 47316898 故障模块名称: MSVCR80.dll 故障模块版本: 8.0.50727.6195 故障模块时间戳: 4dcddbf3 异常偏移: 00008aa0 异常代码: c000000d 异常数据: 00000000 解决方案 光给出一个异常信息,天知

C# 制作Com组件:java调用.net DLL的方法

本文将详细为大家介绍一个java调用.net DLL的方法,以实现特殊的客户的特殊要求:"在Java项目中必须使用其提供的用.net写的DLL加密机制!" 环境与工具: ◆.net framework 3.5 C# ◆java jdk1.5, Tomcat 5.5 ◆jacob-1.15-M3 实现例子: 一.C# 制作Com组件 新建一个Class 项目,取名TestCom 代码 using System;  using System.Collections.Generic;  us

跨越语言的障碍:C++调用C# DLL

当C#项目需要引用C++dll的时候可以直接使用DLLIMPORT来进行调用.而反向的话,C++项目并不能简单靠引用来使用C#DLL.因为C++项目默认配置是没有公共语言运行库支持的.所以我们需要更改一些配置来进行对C# dll的调用.步骤如下: 首先我们完成C# dll开发: namespace Csharp { public class Class1 { public string Name = string.Empty; public Class1() { Name = "We can u