C#的dll怎样实现返回值?

问题描述

C#主窗体调用一个查询列表dll,查询后想返回住窗体一个字符串,主窗体与DLL中代码该怎么实现?麻烦高手给说一下

解决方案

解决方案二:
友情帮顶
解决方案三:
学习ing....等待高手回复
解决方案四:
dll有很多种啦,常规dll,com组件dll,.net程序集dll在C#使用的方式也不一样,不知阁下说的是哪一种.
解决方案五:
用反射么,先获取assembly程序集,然后用反射type获取该类型的实例,方法,属性,参数等信息

时间: 2024-10-06 12:36:32

C#的dll怎样实现返回值?的相关文章

C#调用C++ Dll ,单返回值不正确

问题描述 C++dll中函数原型EXPORTint_stdcallCryptOptionsString(constchar*pID,constintnMoudle,unsignedintnSeed,char**pSN,int&nAdd);intAPIENTRYCryptOptionsString(constchar*pID,constintnMoudle,unsignedintnSeed,char**pSN,int&nAdd){//内部实现省略return-1;} C#中调用[DllImp

c#调用c++开发的dll const char* 返回值接收问题

原文:c#调用c++开发的dll const char* 返回值接收问题 用c#调用视频接口相关的dll,dll使用c++开发. c++接口定义如下: PLATFORM const char* Plat_GetValueStr(const char* propertyName, int iUserHandle);   c#接口定义如下: [DllImport(@"Platform.dll", EntryPoint = "Plat_GetValueStr", Char

C# 利用P/Invoke调用PMAC的Pcomm32.dll, 函数字符串返回值为空

问题描述 大家帮我看看,这是利用P/Invoke委托连接PComm32.dll动态连接库,向一个PMAC设备发送指令的语句,向下发送能够成功,但返回值应该在buf值,但就是没有怎么回事?字符串buf为空,急等调试,谢谢各位高手,在线等PMAC的PComm32.dll中函数原形为:longPMACGETRESPONSEA(DWORDdwDevice,PCHARresponse,UINTmaxchar,PCHARcommand)C#代码如下namespaceaaa{publicdelegateInt

dll调用-PB 调用DLL 返回值为乱码

问题描述 PB 调用DLL 返回值为乱码 PB 使用SMS.DLL在PB中调用时,发现返回值为乱码. 推测异常原因可能是: DLL中定义的数据类型与PB数据类型不同造成. 使用DELPHI调用相同的DLL,返回值正常. //DLL声明 function uint Sms_Connection(string CopyRight,uint Com_Port,uint Com_BaudRate,ref string Mobile_Type,ref string CopyRightToCOM)libra

c语言-VB 调用crc16校验 dll 返回值不正确

问题描述 VB 调用crc16校验 dll 返回值不正确 真诚求助,其实什么都写好了就是关键时候掉链子了 如下: C语言写的CRC16 半字节查表 方式校验,dll cpp 程序如下: unsigned short _stdcall CalCRC16(unsigned char *ptr, unsigned char len) { unsigned short crc; unsigned char da; unsigned short crc_ta[16]={ 0x0000,0x1021,0x2

c#调用c++-c#调用C++dll 返回值为结构体,其中包含string, 报错

问题描述 c#调用C++dll 返回值为结构体,其中包含string, 报错 c++ struct ClientInfo { char adress[4]; }; extern "C" __declspec(dllexport) ClientInfo Test() { ClientInfo c; strcpy_s(c.adress, "1234"); return c; } c# [DllImport("ManagerAPI.dll")] pub

dll文件返回值问题

问题描述 最近用MATLAB写了个小程序,返回值是一个1*14的矩阵,然后把这个程序编译成了dll文件添加在了VB.NET的工程中,但是在VS2010中调用该dll的函数返回数组时,发现没法读取数组中具体的元素,总提示索引超出了界限,经调试发现是维度"0"的索引"-1"超出范围.我知道VB.NET和MATLAB中对数组下标的定义不同,但是不知道要如何才能解决碰到的这个错误,如果有那位高手能告知一二,不甚感激.这是VB.NET程序及报错:这是数组的具体返回值情况:这是

c#调用c++的DLL,不能正确返回值,高手帮忙解决,急!!!!

问题描述 有一个C++生成的dll,名称为test.dll,入口点为_datadown@12其中包含一个方法stringdatadown_sp(stringinputstring,stringtype,refstringoutstring).其中,type值为固定的,TYPE="U".在C#中调用后,不能正常返回值.正常运行的结果应该返回两个值,一个是datadown_sp.一个是outstring.但调用后,datadown_sp返回乱码,outstring返回初始定义的值.代码如下

C#调用返回值为字符串的dll api,调试模式下崩溃

件的api返回值都是字符串类型,考虑vs2012中C#的托管指针调试可能有改动.所以将返回值类型修改为 IntPtr,在调用api后,将返回值用Marshal.PtrToStringAnsi转为字符串,解决方法繁琐了点,不知有无更 好的方案了. C#代码  代码如下 复制代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Ta