pb11.5调用C# dll ConnectToNewObject 返回-3什么原因? [问题点数:100分]

Bbs1
本版专家分:0
结帖率 0%
PB ConnectToNewObject 返回-3
如题:<em>返回</em>值是-3 ,Object could not be created 不知道是<em>什么原因</em>,xp ,DCOM 服务是开着的。
调用connecttonewobject()返回-3,请教高手!
代码如下:rnoleobject ole_hzylrnint li_returnrnole_hzyl = create oleobject rnli_return = ole_hzyl.<em>connecttonewobject</em>("interface")rnli_return <em>返回</em>值是-3,好像是不能创建objectrn
ConnectToNewObject 返回值是-3
int li_rtnrnOLE_Server = CREATE OLEObjectrnli_rtn=OLE_Server.ConnectToNewObject("Lppx2.Application")rnif li_rtn=0 thenrn //OLE_Server.Visible = truern OLE_Doc=OLE_Server.ActiveDocumentrnelsern messagebox("错误","创建Lppx2.Application失败"+string(li_rtn),stopsign!)rnend ifrnrn<em>返回</em>值是-3 是<em>什么原因</em>啊,着急在线等待!!!!
关于connecttonewobject返回-3的问题,在线等,跪求解决方法
在人在处理COM时,出现了<em>connecttonewobject</em><em>返回</em>-3的问题,源码如下:rnrnrn int intValue rn rn ioo_objOle=create OLEObject rn intValue=ioo_objOle.<em>connecttonewobject</em>("hyjk") rn rn if intvalue <> 0 thenrn messagebox("createObj",string(intValue))rn returnrn end ifrnrn is_rtn = "" rn is_rtn = ioo_objOle.createinstace()rnrn开发环境:winxp + pb9 + sql2000rnrn只是不知为什么,老是创建不了实例。。。。在线跪求解决方法。。。rn如知道的,可QQ:21915018 或者e-mail:liuvshua@163.com 等联系,,非常感谢。。。。rn
调用dll出错,可能是什么原因???
<em>调用</em><em>dll</em>出错,可能是<em>什么原因</em>???rnRun-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
C#调用C++的Dll返回空值,求助
C++写的Dll中rnrn#ifdef __cplusplusrn#define EXPORT extern "C" __declspec(<em>dll</em>export)rn#elsern#define EXPORT __declspec(<em>dll</em>export) rn#endifrnrnEXPORTrnvoid __cdecl FuncA(char* message,long* value)rnrn memset(receive_buffer.message,0,1025);rn strcpy(receive_buffer.message,"message return from <em>dll</em>")rn long tmp=10;rn value=&tmp;rn return;rnrnrnC# <em>调用</em>Dllrn[DllImport("test.<em>dll</em>",EntryPoint="FuncA")]rnprivate static extern void FuncA(ref string strMsg,ref long value1);rnrnstring strMsg=string.Empty;rnlong lValue=0;rnFuncA(ref strMsg,ref lValue);rn执行后,结果strMsg还是为空,lValue为0。rnrn我认为,在FuncA内,虽然申请了内存,但是,当函数执行完了之后,清除了内存,那么<em>返回</em>的值将会是一个非法的指针,特别是long* value.rnrn请教,FuncA应该如何写才能传回值给C#?
关于dll返回字符串在C#下调用的问题
c++<em>dll</em>导出函数的原型: rnrnextern "C" __declspec(<em>dll</em>export) void say(void); rnextern "C" __declspec(<em>dll</em>export) LPTSTR Picker();rnrn我开始这样在<em>c#</em>中<em>调用</em> rnrn[DllImport("..\\mfc<em>dll</em>\\mfc<em>dll</em>.<em>dll</em>", EntryPoint = "say")] rn public static extern void say(); rn rn[DllImport("..\\mfc<em>dll</em>\\mfc<em>dll</em>.<em>dll</em>", EntryPoint = "Picker")] rn public static extern string Picker(); rn......... rnrnsay(); //ok! rnrnstring str = Picker(); rnrnMessageBox.Show(str); //error:display empty comment rnrn........ rnrnrn我又在网上查找一些资料,有说用StringBuilder可以解决,我又用以下方法: rnrn[DllImport("..\\mfc<em>dll</em>\\mfc<em>dll</em>.<em>dll</em>", EntryPoint = "Picker")] rn public static extern StringBuilder Picker(); rn......... rnrnsay(); //ok! rnrnStringBuilder sb = new StringBuilder(); rnrnsb = Picker(); rnrnMessageBox.Show(sb.ToString()); //error:出现异常并退出 rnrn........ rnrn因为我接触<em>c#</em>时间不长,也没有去仔细看StringBuilder的文档,我也不知道以上用法是否正确 rnrn rnrn最后我又换了以下方法rn[StructLayout(LayoutKind.Sequential,CharSet = CharSet.Unicode)] rnpublic struct MyString rn rn public IntPtr _str; rn rnrn[DllImport("..\\mfc<em>dll</em>\\mfc<em>dll</em>.<em>dll</em>", EntryPoint = "Picker")] rnrnpublic extern static void marshalFun(IntPtr ip); rn........ rnIntPtr ip = Marshal.AllocHGlobal(128); rnmarshalFun(ip); rnMyString mystr = (MyString)Marshal.PtrToStructure(ip, typeof(MyString)); rnstring str = Marshal.PtrToStringUni(mystr._str); rnrnMessageBox.Show(str); //此处任然显示空 rnMarshal.FreeHGlobal ; rnrn....... rnrnrn<em>dll</em>文件应该没有问题,在vc.net 2005 + WM5 SDK中使用正常,而在C#下<em>调用</em>时,第一个导出函数say()<em>调用</em>正常,而第二个函数picker()始终不能得到正确结果。 rnrn这个问题困扰我两天了,先谢谢大家了:-) rn
c++ dll返回CBitMap* c#调用的处理
小白一个,在使用MarkEzd.<em>dll</em>的过程中有一个函数<em>返回</em>的是CBItMap*,我用IntPtr指向<em>返回</em>值,现在想将<em>返回</em>的图像画出来,要怎么操作,我尝试使用过Image.FromHBitmap,Marshal.ReadIntPtr(),都不管用,我想用下面这种将指针的东西读取到内存中,然后在通过数据流给出图片。哪位大神能给小弟一个答复,所有的分都送了都可以。rn IntPtr wH = new IntPtr(0);rn IntPtr imagePtr = new IntPtr(0);rn IntPtr ptrTemp = new IntPtr(0);rn Image image;rn wH = this.Handle;rn imagePtr = lmc1_GetPrevBitmap(wH, 10, 10);rn //image = lmc1_GetPrevBitmap(wH, 10, 10);rn if (imagePtr != null)rn rn //ptrTemp = Marshal.ReadIntPtr(imagePtr);rn //image = Image.FromHbitmap(ptrTemp);rn ////Graphics g1 = Graphics.FromHwnd(imagePtr);rn ////image = new Bitmap(10,10,g1);rn //drawPreView(image);rn int len = 65535;rn byte[] imgByte = new byte[len];rn IntPtr hglobal = Marshal.AllocHGlobal(len);rn hglobal = Marshal.ReadIntPtr(imagePtr);rn Marshal.Copy(hglobal,imgByte,0,len);rn //Marshal.FreeHGlobal(hglobal);//这样处理也提示错误rn image = Image.FromStream(new MemoryStream(imgByte));rn preView.Image = pic; //preView是一个PicTureBox。rn preView.Height = pic.Height;rn preView.Width = pic.Width;rn rn哪位大神能给小弟一个答复,所有的分都送了都可以。实在是搞不下去了。其中的函数:rn函 数 名:lmc1_GetPrevBitmaprn目 的:得到当前数据库里的所有对象的预览图像。rn语 法:Cbitmap* lmc1_GetPrevBitmap(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT);rn hwnd需要显示当前图像的窗口句柄rn nBMPWIDTH 需要生成的图像的像素宽度rn nBMPHEIGHT需要生成的图像的像素高度rn描 述:在程序中<em>调用</em>lmc1_GetPrevBitmap得到当前数据库里的所有对象的预览图像,可以用于更新界面显示。rn返 回 值:如果成功会<em>返回</em>图像,<em>返回</em>值为空表示失败rn提示的错误为rn[img=http://img.my.csdn.net/uploads/201303/12/1363057975_1380.jpg][/img]
C# 调用dll的时候返回false
代码是:rn[DLLImport("Generator.<em>dll</em>",EntryPoint="ResetMachine")]rn[return:MarshalAs(UnmanagedType.I1)]rnpublic static extern bool ResetMachine();rnrn使用的时候直接用一个 if 判断,if里面判断以后执行的程序,不对ResetMachine()进行操作,只是些C#的认证之类的rnif(ResetMachine())rnrn //true执行的程序rnelsernrn //false执行的程序rnrnrn他写的是回调函数,在<em>返回</em>以前用弹出框<em>返回</em>了值,是true,但是到我这边<em>调用</em>判断的时候就成false了rnrn求高手帮忙解决下、、、 、、、
c#调用DLL如何返回结构数据
<em>调用</em>的是delphi的<em>dll</em>rnrn结构如下:rnrntypern TMachineList = recordrn IpAddr: array [0..3] of char; //机器IP地址rn MachineType: array [0..19] of char; //机器型号rn MachineSN: array [0..15] of char; //机器序号rn MachinePordTime: array [0..7] of char;//机器生产日期rn MachineDescr: array [0..39] of char; //机器描述rn CtrlManuf: array [0..19] of char; //控制器厂商rn CtrlType: array [0..19] of char; //控制器型号rn CtrlSerNr: array [0..19] of char; //控制器序号rn CtrlHWVers: array [0..19] of char; //控制器硬件版本rn CtrlSWVers: array [0..39] of char; //控制器软件版本rn CtrlNetVers: array [0..19] of char; //控制器联网程序版本rn CtrlDescr: array [0..39] of char; //控制器描述rn MoldDataVers: array [0..19] of char; //模具资料版本rnend;rn PMachineList = ^TMachineList;rn AMachineList = array [0..0] of TMachineList;rn PAMachineList = ^AMachineList;rnrnrnrn函数rnfunction GetMachineList(MachineList: PMachineList): integer;stdcall;rnvarrn i: integer;rn PML: PAMachineList;rnbeginrn PML := PAMachineList(MachineList);rn LockXY.Acquire;rn tryrn for i := 0 to UsedCount - 1 dorn beginrn application.messagebox(pchar(inttostr(Integer(UsedCount))),'标题',mb_ok);rn CharArrayCopy(PML[i].IpAddr, ThreadMap[i].IpAddr, 4);rn rn //CharArrayCopy(PML[i].MachineType, ThreadMap[i].MachineType, 20);rnrn //CharArrayCopy(PML[i].MachineSN, ThreadMap[i].MachineSN, 16);rn //CharArrayCopy(PML[i].MachinePordTime, ThreadMap[i].MachinePordTime, 8);rn //CharArrayCopy(PML[i].MachineDescr, ThreadMap[i].MachineDescr, 40);rn //CharArrayCopy(PML[i].CtrlManuf, ThreadMap[i].CtrlManuf, 20);rnrnrn //CharArrayCopy(PML[i].CtrlType, ThreadMap[i].CtrlType, 20);rn //CharArrayCopy(PML[i].CtrlSerNr, ThreadMap[i].CtrlSerNr, 20);rn //CharArrayCopy(PML[i].CtrlHWVers, ThreadMap[i].CtrlHWVers, 20);rn //CharArrayCopy(PML[i].CtrlSWVers, ThreadMap[i].CtrlSWVers, 40);rn //CharArrayCopy(PML[i].CtrlNetVers, ThreadMap[i].CtrlNetVers, 20);rn //CharArrayCopy(PML[i].CtrlDescr, ThreadMap[i].CtrlDescr, 40);rn //CharArrayCopy(PML[i].MoldDataVers, ThreadMap[i].MoldDataVers, 20);rnrn end; //forrn finallyrn LockXY.Release;rn end;//tryrn Result := UsedCount;rnend;rnrnrnrnrnrn我在<em>c#</em>处这么定义rn[DllImport(DLLFILENAME)]rn public static extern int GetMachineList(ref MachineListStruct MachineList);rnrn是可以<em>调用</em>的,但是只能返一个结构的值,不能<em>返回</em>结构数组
C#调用Dll控件返回的指针类型
<em>调用</em>页面:rn[code=C#]using System;rnusing System.Data;rnusing System.Configuration;rnusing System.Web;rnusing System.Web.Security;rnusing System.Web.UI;rnusing System.Web.UI.WebControls;rnusing System.Web.UI.WebControls.WebParts;rnusing System.Web.UI.HtmlControls;rnusing System.Runtime.InteropServices;rnusing StructModel;rnrnnamespace AJAXEnabledWebApplication1.CSClassrnrn rn rn public unsafe class DataDllrn rn [DllImport("DataDLL.<em>dll</em>",CharSet=CharSet.Ansi)]rn public static extern IntPtr LoadAnaMem(int nIndex);rn //[DllImport("DataDLL.<em>dll</em>", CharSet = CharSet.Ansi)]rn //public static extern void GetAnaValue(int nIndex, IntPtr data);rn public static unsafe analogue test()rn rn analogue sData;//声明一个结构体rn IntPtr ClientInfor = (IntPtr)Marshal.AllocHGlobal(Marshal.SizeOf(typeof(analogue)));//给指针分配结构体大小的内存空间rn ClientInfor = LoadAnaMem(3);//<em>调用</em>Dll控件的方法,<em>返回</em>值为一个任意指针类型rnrn sData = (analogue)Marshal.PtrToStructure(ClientInfor, typeof(analogue));//从非托管程序中读取数据并赋予当前结构体.rnrn return sData;rn rn rnrnrn[/code]rnrnC#结构体页面:rn[code=C#]using System;rnusing System.Data;rnusing System.Configuration;rnusing System.Web;rnusing System.Web.Security;rnusing System.Web.UI;rnusing System.Web.UI.WebControls;rnusing System.Web.UI.WebControls.WebParts;rnusing System.Web.UI.HtmlControls;rnusing System.Runtime.InteropServices;rnrnnamespace StructModelrnrn rn [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] rn public struct analogue //遥测数据rn rn public byte A_sta; //站号rn public int A_id; //序号rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]rn public byte[] A_name; //名称 原来是Char的rn public int A_address; //物理地址rn public float A_factor; //系数rn public float A_bottom; //底数rn public byte A_clc; //rn public byte A_flag; //越限标志rnrn public float A_up_yj; //越上限预警值rn public float A_up_yj_jc; //解除越上限预警值rn public float A_up_bj; //越上限报警值rn public float A_up_bj_jc; //解除越上限报警值rnrn public float A_down_yj; //越下限预警值rn public float A_down_yj_jc; //解除越下限预警值rn public float A_down_bj; //越下限报警值rn public float A_down_bj_jc; //解除越下限报警值rn public float A_value; //数值rn rn rn public class CStructModelrn rn rnrn[/code]rnrnrn呈现后台页面:rn[code=C#]using System;rnusing System.Data;rnusing System.Configuration;rnusing System.Collections;rnusing System.Web;rnusing System.Web.Security;rnusing System.Web.UI;rnusing System.Web.UI.WebControls;rnusing System.Web.UI.WebControls.WebParts;rnusing System.Web.UI.HtmlControls;rnusing AJAXEnabledWebApplication1.CSClass;rnrnnamespace AJAXEnabledWebApplication1rnrn public unsafe partial class ZedGraphShow : System.Web.UI.Pagern rn rn rn protected void Page_Load(object sender, EventArgs e)rn rn //ArrayList alist = new ArrayList();rn //alist.Add(null);rn //Study1.GetAllClientInfo(ref alist);rn Label1.Text=DataDll.test().A_address.ToString();rn rn rnrn[/code]rnrn在这句: sData = (analogue)Marshal.PtrToStructure(ClientInfor, typeof(analogue));//从非托管程序中读取数据并赋予当前结构体.rn进行断点调试时,发现sData的全部值为0,rnrn如果先对sData赋初值,那么<em>调用</em>后全部值会再变成0..rnrn说明<em>调用</em>是成功的,只是没有读到其中的数据...rn我想这个问题主要是在C#中怎么与非托管的Dll控件进行交互的问题,rnrn最重要的是C#怎么根据一个内存中的地址去读它的数据...rnrnrn请大家帮帮忙..rnrn或者提供相关资料,谢谢rn
c#调用c++写的dll 返回问题
[DllImport("startTimeDiff.<em>dll</em>", EntryPoint = "startTimeDiff", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl, ExactSpelling = false)]rn public extern static OutResult startTimeDiff(string masterDataFileName, string slaveDataFileName, string ephDataFileName, long extraNum);rnstring a = "C:\**.txt";rn string b = "**.txt";rn string c = "***.txt";rn long d = 1;rn int test = startTimeDiff(a, b, c, d);rnrnstartTimeDiff是<em>dll</em>中的主函数,如果该函数没<em>调用</em>别的函数,就可以<em>返回</em>test,如果<em>dll</em>中的startTimeDiff<em>调用</em>了别的函数,就不会<em>返回</em>test,即使 int test = startTimeDiff(a, b, c, d);这行代码后面也不执行了,但是<em>dll</em>中的整个函数确执行了,并且生成了我要的txtrn
C#调用C++的dll返回空字符串,求助
C++的Dllrnextern "C" __declspec(<em>dll</em>export) rnbool __cdecl GetResult(int value1,unsigned char * value2)rnrnif (value1)rnFuncA(value2);rnelsernFuncB(value2);rnrnreturn true; rnrnrnvoid FuncA(unsinged char* value)rnrn....rnrnrnvoid FuncB(unsigned char* value)rnrn...rnrnrnC#里<em>调用</em>rnstring strValue;rnint iCount;rnGetResult(iCount,ref strValue);//不用ref也是<em>返回</em>空值rn得到的strValue为空值,请问,Dll里应该怎样定义传入的参数,才能<em>返回</em>字符串给C#?rnrn
PB11.5破解dll
PB11.5的破解DLL,很好用的,大家有需要的可以试一下。
pb11.5破解dll
可以破解<em>pb11.5</em>,能用,简单说这些,
DLL调用(3):Java JNA调用DLL
Java<em>调用</em>C++的DLL方式很多,其中JNA方式是比较通用的一种。JNA(Java Native Access )提供一组Java工具类,可实现运行期动态访问系统本地库(native library)而不需要编写任何Native/JNI代码。程序需要在java接口中描述目标native library的函数与结构,JNA即可自动实现Java接口到native function的映射。
ConnectToNewObject 连接失败
oleObject.ConnectToNewObject("PowerBuilder.Application")rn连接出错,<em>返回</em>值为-2,动态库rpcrt4.<em>dll</em>在程序目录下也存在。rn大家看该如何解决?rn谢谢!
PB9升级到PB11.5 调用开发的动态库 PB9调用的动态库返回的blob是正常的, 现在PB11.5调用返回的blob是乱码
遇到了个问题 PB9<em>调用</em>的动态库<em>返回</em>的blob是正常的,rn现在PB11.5<em>调用</em><em>返回</em>的blob是乱码,这个事故跟ANSI编码和 unicode编码的区别么?rnrn我试了各种方法rn 1、声明函数的时候加上了别名后缀;Ansirn 2、查看String 使用了字典里面的4中编码转换成String 查看rn 3、也用Char变量来代替 rn都一样还是乱码rn
PB11.5调用FindWindowA出错
ulong ll_handlernint li_looprnrun("rar.exe x -e -o+ Update.RAR,Minimized!)rnll_handle = 0rn//循环至窗口打开rnstring ls_null rnsetnull(ls_null) rnDo While ll_handle = 0rnll_handle = FindWindowA(ls_null,"rar.exe")rn messagebox('',ll_handle) rnyield()rnloop rnll_handle怎么总是为0,进入死循环。应该是FindWindowA参数错在哪里了?试过把rar.exe改成“E:\rar.exe”也不行.rar.exe是WINRAR软件带的一个命令行程序。RUN运行正常。rnFunction ulong FindWindowA (String lpClassName , String lpWindowName ) Library "user32.<em>dll</em>" rnFunction boolean IsWindow (Long hwnd ) Library "user32.<em>dll</em>"
pb11.5调用webservice出错..
完全按照网上的教程写的.rnrn写了一个最简单的webservice 用<em>pb11.5</em>写的.rnrn然后用11.5来<em>调用</em>..rnrn居然报错....rnrni_conn = create soapconnectionrnrnll_result = i_conn.setsoaplogfile( 'mysoaplog.log')rnll_result = i_conn.createinstance( iws_proxy_obj,"n_datawebservicesoap")rnrn就是在<em>调用</em>i_conn的方法的时候出错.rnrn在家里电脑刚系统重装的好的.rnrn今天在办公室电脑就有问题.rnrnpbd已经加上了..rnrn各位帮我看看是哪里出了问题?rnrnBad runtime function reference at line 6 in clicked event of object cb_1 of w_client. rn
pb11.5调用wsdl文件
<em>pb11.5</em><em>调用</em>wsdl文件的步骤: 1、新建web service proxy 2、添加pbwsclient115.pbd 3、创建实例 4、<em>调用</em>函数 5、在窗口中显示结果。
PB11.5 调用MISPO接口
PB11.5<em>调用</em>联迪Mispos接口的例子,可以通过pos进行银联交易
PB11.5调用wfEncode的例子
wfEncode.DLL是一个集Base64加解码、DES加解密、MD5编码、AES加解密等功能于一身的DLL,可在多种主流编程环境下直接<em>调用</em>,其中包括PB,亲测在PB11.5(web service环境下客户机及服务器)中顺利通过。以上功能的函数均已在n_wfencode中进行了声明,另外附加了取本机IP地址、机器名和取随机字符的函数。
C#创建DLL和调用DLL
我现在想用C#在A项目中写一个DLL,在B项目中<em>调用</em>,可不知道怎么写和怎么<em>调用</em>rnDLL主要功能是实现主机头的添加rn代码如下:rnDirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/" + siteid);rn PropertyValueCollection serverBindings = site.Properties["ServerBindings"];rn string headerStr = string.Format("0:1:2", ip, port, domain);rn if (!serverBindings.Contains(headerStr))rn rn serverBindings.Add(headerStr);rn rn site.CommitChanges();rnrn现在请问我这个DLL要怎么写才可以在B项目中<em>调用</em>
c#开发dll调用dll
详细讲解C#如何开发<em>dll</em>,和<em>调用</em><em>dll</em>
VC2005 DLL调用 DLL 返回字符的问题
rn//想<em>返回</em> "aaaaaa"rnextern "C" _declspec ( <em>dll</em>export ) void PASCAL GetHardDriveNo(char * a )rn rn std::string s_reStr;rn s_reStr="0";rn char *ch_input=new char[2222];rn ch_input ="aaaaaa";rn memcpy(a,ch_input,sizeof(ch_input));rn}rnrn//<em>调用</em>rn [DllImport("Zc.<em>dll</em>")]rn extern "C" void GetHardDriveNo(char* A);rnrnrnprivate: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) rnrnchar* szHostName = new char[1024]; rn GetHardDriveNo(szHostName);//这里是空值 而不是 aaaaaa 为什么?rnrn
调用dll返回string数组
各位仁兄:小弟刚刚接触<em>dll</em>编写,请问:如何编写一个<em>dll</em>里的函数,<em>返回</em>值为string数组,并在前台<em>调用</em>;前台如何<em>调用</em>!(<em>调用</em>方和被<em>调用</em>方均为Delphi程序)谢谢
调用DLL如何返回字符串?
本人在VC6.0++中编写DLL库,其文件名为GPIB.<em>dll</em>,其中有一函数如下:rn//VC6.0++代码rn WINAPI int Strread(char *result)rn rn char *p="abcdefgh";rn *result=*p;rn return 0;rn rnrn目的是想在VB6.0中<em>返回</em>字符串"abcdefgh",VB6.0中的代码如下:rnrn'VB6.0程序代码rnPrivate Declare Function Strread Lib "GPIB.<em>dll</em>" (ByVal result As String) As LongrnrnPrivate Sub Command1_Click()rn Dim id As Longrn Dim result As Stringrn result = Space$(8)rn id = Strread(result)rn Print resultrnEnd Subrnrn但<em>返回</em>的不是字符串"abcdefgh",而是字符"a",不知是何问题,希望能得到各位网友的帮助,希望能提供源代码。rn
如何返回调用dll的程序名
各位高手,我编写了一个<em>dll</em>,用vb的程序来<em>调用</em>它。rn现在我想在<em>dll</em>中获得<em>调用</em>该<em>dll</em>的程序名,请问用什么方法实现?rn谢谢。
求助:调用dll老是出错,可能是什么原因~~
帮别人写点程序,需要<em>调用</em>一个<em>dll</em> 文件中的函数.rn我在test.cpp 文件中添加了rastrule<em>dll</em>.h ,然后在工程/设置/链接 中将rastrule<em>dll</em>.lib 添加进去.然后把rastrule<em>dll</em>.<em>dll</em>rnrastrule<em>dll</em>.hrnrastrule<em>dll</em>.lib rn这三个文件拷到工程目录下.然后在test.cpp中<em>调用</em>rastrule<em>dll</em>.<em>dll</em> 中声明的函数.每次都会有这样的报错:error LNK2001: unresolved external symbol "void __stdcall SetMode(unsigned short,unsigned char)" (?SetMode@@YGXGE@Z)rnrn函数的参数严格按照该<em>dll</em> 文件的说明来的,应该没问题.今天搞了一下午了,请哪位高手指点一下,可能是什么地方出错.
请教:DLL返回CString,COM里调用DLL如何返回
我DLL是这样定义的:rn_declspec(<em>dll</em>export) CString PrinterFun::SerialNum ()rnrn我建立COM接口<em>调用</em>这个DLLrn发现<em>返回</em>值不能是CString,我用ConvertBSTRToString转换也没用rnSTDMETHODIMP CIFun::CallDllSerialNum (BSTR buf1, BSTR *pVal5)rnrn PrinterFun m_Printer5;rn char *buf =_com_util::ConvertBSTRToString (buf1);rn *pVal5 = m_Printer5.SerialNum(buf);rn return S_OK;rnrnrn懂的帮忙看下该如何做,给出代码看一下
C#调用C#的DLL文件
C#<em>调用</em>C#写的DLL文件,C#<em>调用</em>C#的DLL文件,C#<em>调用</em>C#的DLL文件
C++调用C#的dll
C++中<em>调用</em>CSharp创建出来的<em>dll</em>文件
C#调用C++的DLL
C#<em>调用</em>C++的<em>dll</em>获取字符串,C#将字符串传递给C++处理
delphi调用C# DLL
delphi<em>调用</em>C# DLL
c#调用dll示例
底层函数用c++开发,提高安全性与性能。顶层代码用<em>c#</em>开发,方便易用。
c#调用DLL问题
被<em>调用</em>123.DLL C++编写 解密的,rnrn Return : 0 Successrn -1 Invalid Datrnrnint CardNoDecrypt( char* z_Data, char* z_CardNo )rn传入一个加密号码z_Data ,传出解密后的号码z_CardNornrnNET C#怎么写????rn
c#调用外部dll
手上有<em>dll</em>,能用reflector打开,这样是不是就能在<em>c#</em>添加引用后,然后using了呢?rnrn添加引用后,using不了,不知道为什么,用reflector打开这个类后,看到里面代码是<em>c#</em>写的啊,求助rn
C#调用易语言DLL
请教下,C#<em>调用</em>易语言DLL,出现不稳定,运行一段时间以后,程序就退出了,是<em>什么原因</em>呢?rnrnrn易语言代码:rn.版本 2rnrn.子程序 Receive, 文本型, 公开rn.参数 Message, 文本型rnrn<em>返回</em> (Message)rnrnC#代码:rn[code=csharp] [DllImport("e.<em>dll</em>", CharSet=CharSet.Ansi)]rn public static extern string Receive(string s); rnrn static void Main(string[] args)rn rn for (int i = 0; i < 10; i++)rn rn var r = Receive(i.ToString());rn Console.WriteLine(r);rn rn Console.Read();rn [/code]rnrn这样运行,只能显示0和1rn如果把易语言“文本型”改成“整数型”,把C#参数和<em>返回</em>值string改成int就可以正确运行rnrn初步怀疑跟指针、内存释放什么的有关系,请高手指教,谢谢!!!
C#调用dll出错
[img=https://img-bbs.csdn.net/upload/201403/25/1395710821_504667.jpg][/img][img=https://img-bbs.csdn.net/upload/201403/25/1395710841_765726.jpg][/img]
C#调用C++ DLL
C#项目中<em>调用</em>C++ DLL,DLL中封装的方法<em>返回</em>类型为char *,对应的C#数据类型为string,但C#中打印<em>返回</em>结果为乱码,望高手赐教……
c#调用c++的dll?
C&C++<em>调用</em>:rnsour密文串rntag明文串rn无<em>返回</em>值rnVDAJ_API void dnVtos(char *sour, char *tag)rnrnrn在<em>c#</em>下如何<em>调用</em>?rnrn[DllImport("c:\\swj2d.<em>dll</em>")]rnrn1 public static extern void dnVtos(string a,out string b);rn2 public static extern void dnVtos(char [] a,out char [] b);rnrn1和2这样<em>调用</em>都不行嘛!rn<em>dll</em>地址:http://www.hzwr.gov.cn/zrr/swj2d.rarrn
c#调用dll的疑问?
API : INT WINAPI CmdGetFPMBID( UINT8 *nCount, UCHAR *bStream, UINT16 UserID, UINT16 nSize );rnrn这样声明可以吗,应该怎么把得到的bstream内容写到XXX.FPM文件上呢,麻烦给个示例,谢谢大家!rn[code=C#] rn /*rn * 获取指定用户ID的指纹模板 rn * rn * 参数 UserID 影响到的用户IDrn * 参数 nCount 用于存储从设备上实际获取到的用户指纹模板数量的内存地址rn * 参数 bStream 用于存储从设备上获取的用户指纹模板数据的存放的起始内存地址rn * 参数 nSize 预分配的由bStream涵盖的内存空间可以容纳的用户指纹模板数量, 应不小于设备由UserID 指定的用户的指纹枚数。rn * 注意事项 : 一个指纹模板数据需要 512 字节来存储。rn * rn */rn [DllImport("FFI.<em>dll</em>")]rn public static extern int CmdGetFPMBID(ref Byte nCount, Byte[] bStrem, UInt16 UserID, UInt16 nSize);[/code]
C#调用DLL
公司的视频监控系统功能不全,我<em>调用</em>供应商提供的视频卡SDK的DLL文件,封装了部分API,封装是成功的,能<em>返回</em>需要的要各种信息,但这个程序 不能和原有监控系统并行运行,在不打开监控系统的时候正常<em>返回</em>各种值,但打开监控系统后便不能正常初始化板卡,估计是板卡驱动被同时<em>调用</em>出现了问题.请问有什么思路能解决这个问题吗?多谢了!
C# 调用 dll
现在使用C++写的<em>dll</em> ,使用里面的函数,其中有一个参数是 char *的,不知道<em>调用</em>时应该使用什么样的类型啊?我使用了string ,stringbuilder,ref byte,ref byte[],ref char,都没有成功!还有没有其他的类型啊?
C#调用动态链接库DLL
vs2017生成动态链接库: https://blog.csdn.net/qq_23229787/article/details/87786373 C#<em>调用</em>动态链接库方法 [DllImport(&quot;my<em>dll</em>.<em>dll</em>&quot;)] public static extern int Add(int a,int b); private void btn_add_Click(object sender...
C#调用dll问题;
无法加载 DLL“MapLicenseXP.<em>dll</em>”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。rnrn可能会是<em>什么原因</em>?谢谢!或者怎样找到问题!
c#调用dll
<em>c#</em>编写的程序要<em>调用</em><em>dll</em>是不是只在这个exe所在的目录和全局缓冲GAC里头找?如果放到system32里头他找不到
Java 调用 C# DLL
NULL 博文链接:https://7wolfs.iteye.com/blog/2043835
c#调用c++的dll
<em>c#</em>使用c++的Dll中的方法rn各位大哥大姐谁会 最好有DEMO
C# 调用DLL问题
那位大侠帮我看看这个DLL<em>调用</em>,在Delphi中<em>调用</em>可以正常,在C#中一直出错,delphi的源代码 和<em>dll</em>的函数都附上。还有我用C#写的程序也一起附上,望高手给小弟看看,在C#中如何<em>调用</em>;rnrnCodernUSBDRVD_GetDevCount() //获取设备函数rnrnUINT USBDRVD_GetDevCount(IN GUID * DeviceClassGUID); //函数声明 rnrnrnExample:rnUINT DeviceCount = USBDRVD_GetDevCount(&GUID);rnrnrnrn//一下为DELPHI <em>调用</em> 可以正常显示rnunit Unit1;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls, ExtCtrls;rntypern _GUID_ = recordrn l: DWORD;rn s1: WORD;rn s2: WORD;rn c: array[1..8] of BYTE;rn end _GUID_;rntypern TForm1 = class(TForm)rn Button1: TButton;rn Timer1: TTimer;rn btnUSB: TLabel;rn procedure Timer1Timer(Sender: TObject);rn procedure FormCreate(Sender: TObject);rn procedure Button1Click(Sender: TObject);rn privatern USB_GUID:_GUID_;rn Private declarations rn publicrn Public declarations rn end;rnrnvarrn Form1: TForm1;rn DevCount:LONGINT;rnimplementationrnrn$R *.dfmrnfunction USBDRVD_GetDevCount(const p: _GUID_): Integer; stdcall;rnexternal 'usbdrvd.<em>dll</em>';rnrnprocedure TForm1.Timer1Timer(Sender: TObject);rnbeginrn DevCount:= USBDRVD_GetDevCount(USB_GUID);rn btnUSB.Caption:= 'USB '+'( '+ inttoStr(DevCount)+' )';rnend;rnrnprocedure TForm1.FormCreate(Sender: TObject);rnbeginrn USB_GUID.L:=$8B021AA5;rn USB_GUID.S1:=$A319;rn USB_GUID.S2:=$45C1;rn USB_GUID.c[1]:=$93;rn USB_GUID.c[2]:=$2C;rn USB_GUID.c[3]:=$90;rn USB_GUID.c[4]:=$AA;rn USB_GUID.c[5]:=$82;rn USB_GUID.c[6]:=$E6;rn USB_GUID.c[7]:=$47;rn USB_GUID.c[8]:=$8D;rnend;rnrnprocedure TForm1.Button1Click(Sender: TObject);rnbeginrnclose;rnend;rnrnend.rnrnrn rn///下边为C#<em>调用</em> 提示 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Text;rnusing System.Windows.Forms;rnusing System.Runtime.InteropServices;rnnamespace _5rnrn public partial class Form1 : Formrn rn public struct UINIrn rn public Int64 L;rn public Int64 S1;rn public Int64 S2;rn public Byte[] c;rn rn rn public int DevCount;rn public UINI USB_GUID;rn rn public Form1()rn rn InitializeComponent();rn rnrn [DllImport("usbdrvd.<em>dll</em>")]rn public static extern Int32 USBDRVD_GetDevCount(UINI USB_GUID);rnrn private void button1_Click_1(object sender, EventArgs e)rn rn Application.Exit();rn rnrn private void Form1_Load(object sender, EventArgs e)rn rn rn USB_GUID.c = new Byte[8];rn USB_GUID.L=0x8B021AA5;rn USB_GUID.S1=0xA319;rn USB_GUID.S2=0x45C1;rn USB_GUID.c[0]=0x93;rn USB_GUID.c[1]=0x2C;rn USB_GUID.c[2]=0x90;rn USB_GUID.c[3]=0xAA;rn USB_GUID.c[4]=0x82;rn USB_GUID.c[5]=0xE6;rn USB_GUID.c[6]=0x47;rn USB_GUID.c[7]=0x8D;rnrn rnrn private void timer1_Tick(object sender, EventArgs e)rn rn tryrn rnrn DevCount = USBDRVD_GetDevCount(USB_GUID);rn btnUSB.Text = "USB " + DevCount;rn rnrn catchrn rn btnUSB.Text = "USB " + "no fund";rn rn rn rn rn rnrnrnC# 获取不到设备的信息rn [DllImport("usbdrvd.<em>dll</em>")]rn public static extern Int32 USBDRVD_GetDevCount(UINI USB_GUID);rn这块应该怎么<em>调用</em>usbdrvd.<em>dll</em>呢?
c# 调用 c++ dll
如果做的是winform,可以找到c++所编写的<em>dll</em>所在的路径 采用【import(@"C:/ZfPrvApi.dl",entrypoint=xxx)】 可以正确的<em>调用</em>该<em>dll</em>rn如果把<em>dll</em>放到服务器上 然后客户端<em>调用</em>该<em>dll</em>如何使用啊 rn还有就是我采用“添加”+“引用”+<em>dll</em> 提示“还不是Com组件” 当采用regsvr32 C:/ZfPrvApi.<em>dll</em> 找不到输入点 rn我<em>调用</em>的这个Dll是有个别人给的C++ 的Dll,我只能使用rn就这么多分了 希望有人能尽快提供答案 不胜感激rn
c#调用delphi dll
[code=Delphi(Pascal)]rndelphi的<em>dll</em>,格式如下rnfunction sdsd(const DD1,DD2: Byte; const SS: PChar; var BB: Byte): Boolean;stdcall;rn[/code]rn转换成<em>c#</em>如下 rn[code=C#]rn[DllImport("xxx.<em>dll</em>", EntryPoint = "sdsd")] rnpublic static extern bool sdsd(byte DD1, byte DD2, string SS, byte BB);rn[/code]rnrn这样是否可以?
c#调用c++ dll
c++代码为:rn申明rn int fuction(byte * p);rn<em>调用</em>rn byte num[250];rn fuction(num);rnrn<em>c#</em><em>调用</em>DLLrn [DllImport("xx.<em>dll</em>")]rn extern static int fuction(ref byte[] p);rnrn <em>调用</em>funtion(num)的时候出现NotSupportedException异常rnrn不知道哪里出错了,希望大家帮忙看看,谢谢!
C#调用DLL的问题
char* strParameters[4];rn strParameters[0] = (char*)malloc(256);rn strParameters[1] = (char*)malloc(256);rn strcpy(strParameters[0],"F:\\abc\\");rn strcpy(strParameters[1],"F:\\abc\\");rn int nRet = m_InitConnect(strParameters,4);rnrnrn以上是在C++中<em>调用</em>m_InitConnect DLL动态链接库中的m_InitConnect这个方法.rn如果在C#中该如何写?rnrnchar* strParameters[4] 要转成什么?
c#调用DLL的demo
<em>c#</em><em>调用</em>DLL的DEmo,同志们就参考参考吧
c#调用vb dll
本例子中实现在<em>c#</em>中<em>调用</em>由vb生成的<em>dll</em>文件(com<em>调用</em>)例子由两个主要步骤组成:一 为在vb中生成有参数和<em>返回</em>值的<em>dll</em> ;二 是在<em>c#</em>中引入步骤一中生成的<em>dll</em>,然后生成实例<em>调用</em>步骤一:首先在vb中新建一个ActiveX DLL 工程,然后在类模块文件中填入以下代
C#调用动态链接库(C#调用dll
<em>c#</em> <em>调用</em>动态链接库方法 <em>c#</em><em>调用</em><em>dll</em>,包含源码
C# 调用DLL文件
C# <em>调用</em>DLL文件C# <em>调用</em>DLL文件C# <em>调用</em>DLL文件C# <em>调用</em>DLL文件C# <em>调用</em>DLL文件C# <em>调用</em>DLL文件C# <em>调用</em>DLL文件
C# 调用C++的dll
C# <em>调用</em>C++的<em>dll</em>,目前只是简单的demo,方便大家熟悉原理。
C#调用C++的dll
C#<em>调用</em>C++动态链接库,生成DLL。一看明了!
C#调用dll的说明
C#<em>调用</em><em>dll</em>的说明。重点是如何传递字符串函数。 [DllImport(@"TempLib.<em>dll</em>")] public static extern void GetSqlData(string ASource, StringBuilder ADest, int ADestSize);   private void button1_Click(object sender, EventArgs e) {     StringBuilder vDest = new StringBuilder(1024);     GetSqlData("Zswang", vDest, 1024);     Text = vDest.ToString(); }
VC++调用C# DLL
<em>c#</em>开发的插件DLL,用C++来<em>调用</em> 。 折腾了几天终于找到的解决的方法 注意:C++中设置:Common Language Runtime support(/clr)
C#调用Dll的方法
C#<em>调用</em>Dll的方法介绍 通过一个例程介绍了关于DLL的<em>调用</em>方法
C# 调用DLL
上面DLL的名字有时需要写上路径的如[DllImport(@"C:OJBinJudge.<em>dll</em>")]这样指定DLL的绝对路径就可以正常装载。       假如没有路径的话,DllImport会按照顺序自动去寻找的地方:      1、exe所在目录      2、System32目录      3、环境变量目录      所以只需要你把引用的DLL 拷贝到这三个目录下, 就可以不用
c#调用DLL
本文选自当初开发项目时的部分代码。 c++函数原型 extern WINSCARDAPI LONG WINAPI SCardEstablishContext(     _In_ DWORD dwScope,     _Reserved_ LPCVOID pvReserved1,     _Reserved_ LPCVOID pvReserved2,     _Out_ LPS
C++调用C#的DLL
因为需要用到混合编程,就找了一些资料,根据这些大牛们的记载,自己也学到了很多。 1、首先生成一个DLL类库 using System; using System.Collections.Generic; using System.Linq; using System.Text;   namespace ClassLibrary1 {     public class 
C#调用dll 动态链接库
在http://topic.csdn.net/u/20080616/09/56f758f7-78a3-4a5c-8bad-903a5deb0acb.htmlrn一贴中提问到rnrnint GetListName(char** pList[]) rn rn *pList= (char **) malloc (sizeof(char *) * 128);rn//<em>返回</em>字符串 组数量rn rnrn[DllImport("my<em>dll</em>.<em>dll</em>",EntryPoint="GetListName", SetLastError=true, CharSet=CharSet.Ansi,rn CallingConvention=CallingConvention.StdCall)] rn public static extern int GetNameList(IntPtr[] pList); rn<em>调用</em>rnrnrnIntPtr[] PtrList =new IntPtr[2]new IntPtr(0),new IntPtr(0);rnint bn=GetNameList(PtrList);rn if(bn>0)rn rn IsOk=true;rn Drv=Marshal.ReadIntPtr(PtrList[0]);rn string as1 =Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(PtrList[0]));rn rn能够获得PtrList[0]正确的字符串,但是当<em>返回</em>的字符串是有两组或多组的时候rnPtrList[1]永远是0rn不知道怎么解决
JNI调用C#的dll
解决问题的思路 JNI不能直接<em>调用</em>C#的<em>dll</em>,原因是C#没有导出函数,C#的本地方法不能被java加载 可以使用C++做一个桥接,通过C++将C#的<em>dll</em>封装,java再<em>调用</em>C++的<em>dll</em>,即 :java →C++ wrapper → C# 遇到的问题及解决方案 网上有很多这方面的教程,但是中间有很多坑,没有讲明白,会导致很多错误。 jni public class TestJN
C#调用DLL续。。。
上贴http://topic.csdn.net/u/20110114/10/4940c58f-d302-414d-8847-6535f991bd0b.htmlrnrn public IntPtr PROP_ENV_HANDLE; //没在原头文件中找到tagPROP_Env_Handle的定义,所以直接用IntPtr定义rn /* typedef struct tagPROP_Env_Handle* PROP_ENV_HANDLE; */rn [StructLayout(LayoutKind.Sequential)]rn unsafe public struct stru_PROP_InitEnv //?原为PROP_ENV_HANDLE,但保持,故改为struct类型rn rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]rn public byte[] pstrPMXAddress;rn[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]rn public ushort iPort;rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]rn public byte[] pstrUserName;rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]rn public byte[] pstrPassword;rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 132)]rn //[MarshalAs(UnmanagedType.LPArray, SizeConst = 1)]rn public stru_PROP_ErrorInfo pErrorInfo;rn ;rn /*rn PROP_ENV_HANDLE PROP_InitEnv(const char *pstrPMXAddress,unsigned short iPort,const char *pstrUserName,const char *pstrPassword,PROP_ErrorInfo *pErrorInfo);rn */rn [DllImport("pmxapi.<em>dll</em>", EntryPoint = "PROP_InitEnv")] //?下面的函数的类型定义也不大确定rn private static extern IntPtr PROP_InitEnv(string PMXAddress, int iPort, string UserName, string Password, out stru_PROP_ErrorInfo ErrorInfo);rnrn ...rn mainrnrn IntPtr hProp;rn string strPMXAddress = "172.17.68.16";rn int iPort = 8888;rn int iListenPort = 5000;rn string strUserName = " 1706";rn string strPassword = "11115716";rn string mver = "XX.XX.XX_YYYYMMDD ";rn stru_PROP_ErrorInfo ErrorInfo= new stru_PROP_ErrorInfo();rn rn hProp = PROP_InitEnv(strPMXAddress, iPort, strUserName, strPassword, out ErrorInfo);rnrnrn最后的InitEnv<em>调用</em>,ErrorInfo有其反馈信息L005 和 “收取信息失败...”rn所以,还是怀疑 PROP_InitEnv这个函数的定义有问题rnrn
c# 调用DLL的问题
请问,<em>c#</em> 中<em>调用</em>DLL,除了引用之外,还有其他方法么 ?rn或者说好的方法
C#调用c++ DLL
参数是一个链表指针,结构体rn这是C++ 的rnstruct HostListrn char ahost[16]; rn char aport[4]; rn char IsNeedconn; rn char Connstate; rn char GatherCycle; rn char ReconnectTimes; rn char ReconnectCycle; rn int Type; rn int GatherTime; rn char data[5120]; rn rn struct HostList *next; // Next HostList struct pointer rn;rnstruct HostList * gpStructHostHeaderApp;rn gpStructHostHeaderApp = HostHeader;rnGetDataFromHMI(gpStructHostHeaderApp);rnrn在C#是要<em>调用</em> GetDataFromHMI(gpStructHostHeaderApp);rn这个在C#中要怎样声明C++相同的结构和怎样<em>调用</em>并<em>返回</em>结构指针
c#调用delphi的dll
最近用delphi2010写了一个动态链接库,想要在C#的WinForm中<em>调用</em>,可是<em>返回</em>的值总是空,下面是具体情况:rn1、delphi的<em>dll</em>代码rnusesrn SysUtils;rnvar WGS:system.AnsiString;//此处用全局变量,尝试用局部变量也不行rn function func1(const a:PAnsiChar;b:PAnsiChar):Boolean;stdcall;//参数用PAnsiChar,也尝试过PCharrnbeginrn WGS:=AnsiString('LL');rn b:=PAnsiChar(WGS);//PChar('dd');//b的值在<em>调用</em>的地方始终是空值,没有改变rn Result:=true;//这个值可以在<em>调用</em><em>dll</em>的地方取到;rnend;rnexportsrn func1;rnbeginrnend.rnrn2、<em>c#</em>中的接口代码rnrnclass Idprn rn [DllImport("myPrj.<em>dll</em>", EntryPoint="func1",CharSet=CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]rn public static extern Boolean func1( string a, StringBuilder b);//b的类型尝试过string、ref string,都取不到值。rn rn3、<em>c#</em>中<em>调用</em>的地方rnrn StringBuilder b = new StringBuilder("");rn string a = "aa";rn Boolean bl= Idp.func1(a,b);//bl的值是truern textBox1.Text = b.ToString();//b的值是"",没有改变。rnrn我是做C#方面的,对delphi不熟悉,这个问题纠结好久了,网上的办法都尝试过,有的说delphi的pchar对应<em>c#</em>的string,有的说对应<em>c#</em>的stringbuilder,都尝试了---无效;请高手指教。。。。
C# Dll调用问题
最近学了会C#在写DLL与<em>调用</em>时遇到了些问题。希望各位大大们帮下忙。rnrn我做的是一个选择类DLL,即rnusing System;rnusing System.Collections.Generic;rnusing System.Linq;rnusing System.Text;rnrn[code=C#]rnrn//以下为DLL接口部份rnusing System;rnusing System.Collections.Generic;rnusing System.Linq;rnusing System.Text;rnrnnamespace SelectClassrnrn public class MainClassrn rnrn public void SelectIO(string SelectProject, bool SelectMore, int SelectLevel)rn rn PublicClass.strSelectProject = SelectProject;rn PublicClass.strSelectMore = SelectMore;rn PublicClass.strSelectLevel = SelectLevel;rnrn switch (SelectProject)rn rn case "选择人员":rn PublicClass.strDataPath = System.AppDomain.CurrentDomain.BaseDirectory + "Database\\SystemData.mdb";rn break;rn case "选择地区":rn PublicClass.strDataPath = System.AppDomain.CurrentDomain.BaseDirectory + "Database\\SystemData.mdb";rn break;rn default:rn break;rn rnrn MainWindow mWindow = new MainWindow();rn mWindow.ShowDialog();rn rn rn rnrnrn //<em>调用</em>部分rn private void button1_Click(object sender, EventArgs e)rn rn SelectClass.MainClass sClass = new SelectClass.MainClass();rn sClass.SelectIO("选择地区", false , 1);rn rnrn[/code]rnrn问题:rn1.<em>返回</em>值是在我选定一条数据后点击确定后<em>返回</em>的。在不使用API情况下如何把这个值<em>返回</em>给<em>调用</em>窗口这边rn2.为什么数据库文件名使用System是会出错rn3.表名为 Password 时使用OleDbCommandBuilder生成命令时会出错。有办法解决吗?我现在使用的是OleDbCommand来执行SQL语句。rnrn分数不多了:20分见谅。rnrn
C# 调用 dll 文件
一、先使用C++来创建一个 .<em>dll</em> 文件 1、创建新项目:CreateDll01 2、选择 “动态链接库(.<em>dll</em>)” 文件 3、在CreateDll01.cpp 源文件中添加如下代码 // CreateDll01.cpp : 定义 DLL 应用程序的导出函数。 // #include "stdafx.h" extern "C" __declspec(<em>dll</em>ex...
C#怎么调用dll
我在网上下了一个日期控件,但是只有一个DateTimePicker.<em>dll</em>文件..rn这个怎么<em>调用</em> ...
c#调用Dll 错误解决
先引入Dllrn[code=C#]rn[DllImport("MonDem.<em>dll</em>", EntryPoint = "fnReadMsgEx", CharSet = CharSet.Ansi,rn CallingConvention = CallingConvention.StdCall)]rn //查询接收rn public static unsafe extern uint fnReadMsgEx(uint nPortNo, out string szHeader, out string szReadMsg);rnrn[/code]rn然后用Timer不停的用<em>调用</em>rn[code=C#]rn public bool ReadGSM()rn rn bool retResult = false;rn string szHeader;rn string szMsg;rn uint nRc;rn nRc = fnReadMsgEx(comNo, out szHeader,out szMsg); rn //其它的一些处理就不用写了rn if (nRc==0) retResult=true;rn return retResult ; rn rn[/code]rn段时间后就会出现 rnFatalExecutionEngineErrorrnThe runtime has encountered a fatal error. The address of the error was at 0x79e71bd7, on thread 0xf70. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.rnrnrn高手帮忙一下
C#调用ActiveX DLL
1、用VB6写了个<em>dll</em> Test.<em>dll</em>rn2、C#程序A 引用Test.<em>dll</em>,同时生成了一个Interop.Test.<em>dll</em>rn3、去掉Test.<em>dll</em>引用rn4、动态<em>调用</em> Test.<em>dll</em>rn//取得当前路径rnstring <em>dll</em>Path = GetAssemblyPath();rnrn//com注册 (难道在这注册不行吗)rn[b]System.Diagnostics.Process.Start("regsvr32.exe", " /s " + <em>dll</em>Path + "Test.<em>dll</em>");[/b]rnrnAssembly ddvb = Assembly.LoadFrom(<em>dll</em>Path + "Interop.Test.<em>dll</em>");rnrn//获取类型rn Type ddtype = ddvb .GetType("Test.GoodVbClass");rnrn//获取方法rnMethodInfo method = ddtype .GetMethod("SayHello");rnrn//生成对象rnobject o = Activator.CreateInstance(ddtype , null);rnrn//<em>调用</em>方法rn Object reslt = method.Invoke(o, new object[] “ASS”);rnrnrn在调试的时候,运行正常,可能是Test.<em>dll</em>也是在本机生成的原因rn但是把生成的EXE和<em>dll</em>放到别的机器上就不行了,rn“检索Com类工厂中CLSID胃20……省略的组建时失败,原因是出现以下错误:80040154”rnrn只剩下10分了,稍后补!rn谢谢rn
DLL在C#调用的问题
DLL的原程序是用C写的. 在DLL文件, .h文件里面定义的数据结构WTLS_TERMINAL_MODE_BAG ,在C#<em>调用</em>的时候,编译不通过.rn[DllImport("xWTLS.<em>dll</em>")] public static extern int WTLS_terminalMode(WTLS_TERMINAL_MODE_BAG *Bag);rnrn有两个问题,rn1. 数据结构WTLS_TERMINAL_MODE_BAG ,没有找到, 怎么解决?rn2. 在C#里面没有指针,这个问题怎么处理?
c#调用 DLL问题
<em>c#</em><em>调用</em> DLL问题rnzcDll.<em>dll</em> 这是我写的VC做的, 我想在C#中<em>调用</em>,要把zcDll.<em>dll</em> 放在 c:\windows\system32中才能<em>调用</em>。rn可我想要是发布网站怎么办呀,不能也让人家把zcDll.<em>dll</em> 放在 c:\windows\system32中吧。rn网上有说右键点后加到资源中,我用的VS2005右键点没有什么选项呀。
sql2005调用C#的dll
我的目的是在mssql2005中操作MySql 中的数据,MySql的数据操作类都封装在C#类中rnrn按照网络上的方法rn在sql2005中打开 CLRrnrn通过语句 注册数据库 程序集:rnCREATE ASSEMBLY as1 FROM 'C:\CLRTest.<em>dll</em>' rnrn这样通过注册到的程序集 as1 就可以通过自定义函数来<em>调用</em>C#类中的各种方法rnrn现在一般的<em>dll</em> 都可以注册成功,但如果<em>dll</em>中有包含对数据的操作,就没法注册,总是有错误提示:所引用的程序集 'system.web, version=1.0.5000.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a.' 不在当前数据库中rn也搞不清楚那提示是什么意思rnrn后面我就是试着把对数据的操作放在web sercice中,让<em>dll</em>的引用这个web service的<em>调用</em>,发现如果<em>dll</em>一旦<em>调用</em>含有web service 就会注册失败rn没折了,只能来这边请教各位rnrn
C# 调用非托管Dll
做一个Asp.Net项目要用到一个 非托管的Dll和下位硬件通讯rn新建一个类对<em>dll</em>中的方法稍微封装了下rn类内容大致如下rn[code=C#]rnpublic class XXXrn rn [DllImport(@"F:\Code\WebSite2\xxx.<em>dll</em>", EntryPoint = "Fun", CharSet = CharSet.Unicode)]rn public static extern int Fun(...);rnrn[/code]rnrn然后<em>调用</em>的时候就rn[code=C#]rn XXX.FUN(...);rn[/code]rnrn类里面有个 连接 和 关闭连接 的方法,在调试过程中,当连接成功后,再连接的话就出现了“设备未连接的”的错误代码,<em>调用</em> 关闭连接 方法,似乎不起效果,当退出虚拟服务器后,再次连接成功了,但接着又出现了上面的错误代码……rn这是<em>什么原因</em>,是不是<em>调用</em>的<em>dll</em>还要进行释放?
c# 调用c++ DLL
<em>c#</em><em>调用</em>c++的<em>dll</em>,<em>dll</em>中的方法传入一个char*指针,最后将数据放在一个char[]数组里面。rn我在<em>c#</em>中<em>调用</em>的时候使用IntPtr类型变量aaa,rn我使用的是rn[code=C#]rnobject obj;rnobj = Marshal.PtrToStructure(aaa, typeof(String));rn[/code]rn这里运行的时候会报错,“没有为该对象定义无参数的构造函数”。是String没有无参构造的问题。rn请问我如何处理这个aaa,得到<em>dll</em><em>返回</em>的数据?rn各位大大,求指点啊,谢谢。rn
C# 调用Delphi DLL
实在解决不了,为了这个问题注册了CSDN,麻烦高手们费心给看看:rnrn需要用C#<em>调用</em>DELPHI的一个DLL库,需要用PCHAR传一个结构过去,为了简化,我用DELPHI先做了一个简单的DLLrnrnlibrary DLLTestD;rnrnusesrn SysUtils,rn Classes;rnrntypern pMyRec = ^TMyRec;rn TMyRec = recordrn var1 : integer;rn var2 : array[0..6]of char;rn end;rnrn$R *.resrnfunction GetRecordByPointer(p : PChar) : integer; stdcall;rnvar pRec : pMyRec;rnbeginrn pRec := AllocMem(SizeOf(TMyRec));rn pRec.var1 := 1239;rn pRec.var2 := 'beta';rn move(pRec^, p^, SizeOf(TMyRec));rn result := 3210;rnend;rnrnexportsrn GetRecordByPointer;rnrnbeginrnend.rnrn在DELPHI的application里,<em>调用</em>GetRecordByPointer没有问题,代码如下:rn--------------------rntypern TMyRec = recordrn var1 : integer;rn var2 : array[0..6]of char;rn end;rnrnprocedure TForm1.Button14Click(Sender: TObject);rnvar n : integer;rn rec : TMyRec;rnbeginrn n := GetRecordByPointer(@rec);rn button14.Caption := inttostr(n) +' '+ inttostr(rec.var1)+ ' ' + rec.var2;rnend;rnrn可在C# (VS2010)里,却出exception,代码如下:rnrnnamespace ConsoleApplication3rnrn [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]rn public struct TMyRecrn rn public int var1;rn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 7)]rn public string var2;rn rnrn class Programrn rn [DllImport("DLLTestDAgain.<em>dll</em>", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]rn static extern int GetRecordByPointer(out IntPtr pChar);rnrn static void Main(string[] args)rn rn IntPtr ptrMyData;rn int result = GetRecordByPointer(out ptrMyData);rn TMyRec rec = (TMyRec)(Marshal.PtrToStructure(ptrMyData, typeof(TMyRec)));rn Console.WriteLine("Result: " + result + " var1:" + rec.var1 + " var2: " + rec.var2);rn rn rnrnrnptrMyData在GetRecordByPointer<em>调用</em>后,显示的是结构的var1的值,而不是结构的地址rnrn不好意思, C#新手,如能给出代码,将非常感谢!rn
c# webservice 调用dll
我用<em>c#</em>写了一个webservice 再用delphi 写另一个<em>dll</em>rn现在想在 websevice <em>调用</em><em>dll</em> rndelphi code:rnfunction QueryCommand(const ConnectInfo,QuerySQL: String): String; StdCall;rnrnrnC# code rnrn [DllImport("HM_DataCOnnect.<em>dll</em>", EntryPoint="QueryCommand")]rn public static extern string QueryCommand(string ConnectStr, string QuerySQL);rn [WebMethod]rn public string HMQueryCommand_Delphi (string ConnectStr, string QuerySQL)rnrn rn rn string ResultXMLData="";rn ResultXMLData = QueryCommand(System.Configuration.ConfigurationManager.AppSettings["hmConnectionString"], QuerySQL);rn return ResultXMLData; rn rn rnrn<em>调用</em>就出错,那位高手帮我看看。rn
C# 调用C++ dll
C# 要<em>调用</em>C++ 的<em>dll</em>rnrnC++ 结构体定义如下:rn[code=C/C++]rntypedef struct tmHideAlarm_trnrn unsigned int dwSize;rn tmSchedTime_t struTime[7][4]; /* 时间 */rnrnrntypedef struct tmSchedTime_trnrn unsigned int dwSize;rn //开始时间rn unsigned char byStartHour;rn unsigned char byStartMin;rn //结束时间rn unsigned char byStopHour;rn unsigned char byStopMin;rnrnrnrn[/code]rnrnrn我在C#代码中如下翻译:rn[code=C#]rnrnpublic struct tmHideAlarm_trnrn public uint dwSize;rn rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 28)]rn public tmSchedTime_t[] struTime;rnrnrnpublic struct tmSchedTime_trn rn public uint dwSize;rnrn /// rn /// 开始时间rn /// rn public byte byStartHour;rnrn /// rn /// 开始时间rn /// rn public byte byStartMin;rnrn /// rn /// 结束时间rn /// rn public byte byStopHour;rnrn /// rn /// 结束时间rn /// rn public byte byStopMin;rn rnrn[/code]rn rnrnrn想请教各位高手,对于C++结构体中的二维数组,我这般翻译可对?如果不对正确的写法应该是怎么样的?
C#调用BCB DLL
最近试着在C#中<em>调用</em>C++ builder 开发的DLL中的Form,但是程序只要一<em>调用</em>就出现以下异常:rn“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。”rn这个错误,我按照网上的方法:在VS2010中按快捷键Ctrl+Alt+E,修改Managed Debuggin Assistants-> LoaderLock,将这个选项的选中状态去掉,然后运行的时候出现以下错误:rn“System.StackOverflowException”类型的未经处理的异常出现在 System.Windows.Forms.<em>dll</em> 中。确保您没有无限循环或无限递归。”rnrnC#部分的代码:rnDLL函数的声明代码:rn[DllImport("Project1.<em>dll</em>", EntryPoint = "ShowDLLForm", SetLastError = true,rn CallingConvention=CallingConvention.StdCall)]rnprivate static extern void ShowDLLForm();rnrnC#<em>调用</em>代码:rn private void button1_Click(object sender, EventArgs e)rn rn ShowDLLForm();rn rnrn-----------------------------------------------------------------------------rnc++ builder代码:rnrnextern "C" __declspec(<em>dll</em>export) __stdcall void ShowDLLForm()rnrn TForm1 *frm=new TForm1(Application);rn frm->ShowModal();rn delete frm;rnrnrn这个DLL,我用C++ Builder写个Exe可以<em>调用</em>,没有任何问题,但是用C#就出现以上错误,请高手指点一下rn
C# 调用dll demo
demo 如何使用C#进行网络请求,这是一个简单得demo,提供给大家参考。
vb调用c#dll
轻松实现vb<em>调用</em><em>c#</em>的<em>dll</em>。本人试验,可以轻松<em>调用</em>。
LabVIEW.office.Toolkit 1.1.4.part2.rar下载
LabVIEW.office.Toolkit 1.1.4.part2.rar office文档生成工具 相关下载链接:[url=//download.csdn.net/download/liaohanxin/2536042?utm_source=bbsseo]//download.csdn.net/download/liaohanxin/2536042?utm_source=bbsseo[/url]
web automation testing -- baidu下载
web automation testing -- baidu 相关下载链接:[url=//download.csdn.net/download/agilelee/2582357?utm_source=bbsseo]//download.csdn.net/download/agilelee/2582357?utm_source=bbsseo[/url]
锐捷4.31破解下载
锐捷4.31破解,大家下载看看能用不。 相关下载链接:[url=//download.csdn.net/download/oruguoyangguang/4859669?utm_source=bbsseo]//download.csdn.net/download/oruguoyangguang/4859669?utm_source=bbsseo[/url]
我们是很有底线的