C#调用C编写dll [问题点数:20分,结帖人frank198381]

Bbs2
本版专家分:426
结帖率 100%
Bbs2
本版专家分:426
Bbs2
本版专家分:118
Bbs2
本版专家分:426
Bbs1
本版专家分:27
Bbs6
本版专家分:8002
Bbs2
本版专家分:426
Bbs1
本版专家分:73
Bbs6
本版专家分:9273
Bbs2
本版专家分:147
JNA调用C编写的DLL
我们团队目前开发的产品是用java语言<em>编写</em>的,大家都知道,java<em>编写</em>的代码随便都可以被反编译,导致别人可能会看到你“裸奔”的样子。所以,为了避免这种安全隐患,团队最终商定,将部分核心代码改用c语言<em>编写</em>,封装为<em>dll</em>,再由java<em>调用</em>。 于是乎,我们就开始jna初探。今天通过各种百度,终于做了个例子出来,在此做个记录,以备后路之需。 1、构造一个<em>dll</em> 由于本机的vs2015没有安装c++模...
C语言Dll编写调用
C语言Dll<em>编写</em>与<em>调用</em>,内含源代码与操作步骤
c#调用vc++编写dll
vc++中的函数定义rnrnDRAWYUV_API BOOL WINAPI DrawImageFormYUVBuf(HANDLE m_handle,PBYTE in_Y,PBYTE in_U,PBYTE in_V,RECT *Rectdes = NULL);rnrn其中rect是struct,相关定义如下rntypedef struct tagRECTrnrn LONG left;rn LONG top;rn LONG right;rn LONG bottom;rn RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;rnrn今天在网上找了一天,虽然找到了有关结构<em>调用</em>的方法,但是有很多种,不知道哪种最合适,另外打死找不到带有参数说明符的<em>调用</em>方法,<em>c#</em>不支持,请教各路高手给点办法或者建议,是在头痛到死了……rn另外还有rnDRAWYUV_API HANDLE WINAPI CreateDrawYUV();
C# 编写 dll VB6调用
能提供C# <em>编写</em> <em>dll</em> VB6<em>调用</em>的详细例子吗
about 调用c#编写dll
如题,在vs2008的mfc工程中<em>调用</em><em>c#</em><em>编写</em>的<em>dll</em>,这里需要使用该<em>dll</em>中的一个函数。rnrn函数的参数是由两个参数组成,一个是输入,一个是输出。rnGetinfo(String LoginID, out WsStruts.ClientInfo clientInfo),rnrn在vs中传递LoginID参数,再取出clientInfo里面的内容。rnrn先在的问题是,定义cstring、string、char*、int...多种类型的变量作为传入的LoginID参数,都出现类似的error。rnrn不能将参数 1 从“char *”转换为“System::String ^”rnrn求高手指点,另外,传出的参数应该怎么取?rnrnchar *tmp;rnGREAT_GetClientInfo(tmp,&m_ClientInfoin);这样取可以不????rnm_ClientInfoin为一结构体。
vc调用C#编写的DLL
用VC<em>调用</em>C#<em>编写</em>的DLL,编译时将DLL放在程序同一目录
C#调用C++编写的DLL
#ifndef _USBDLL_H_rn#define _USBDLL_H_rnrn// The following ifdef block is the standard way of creating macros which make exporting rn// from a DLL simpler. All files within this DLL are compiled with the USBDLL_EXPORTSrn// symbol defined on the command line. this symbol should not be defined on any projectrn// that uses this DLL. This way any other project whose source files include this file see rn// USBDLL_API functions as being imported from a DLL, wheras this DLL sees symbolsrn// defined with this macro as being exported.rn#ifdef USBDLL_EXPORTSrn#define USBDLL_API __declspec(<em>dll</em>export)rn#elsern#define USBDLL_API __declspec(<em>dll</em>import)rn#endifrnrnrn#include rn#include rnrn#define RECORD_LOCAL 0rn#define RECORD_TALK 1rn#define RECORD_LY 2rn// the following functions' definition and macros' definition are the APIs for USB protocolrnrn//----from Phone to PC--------------------------rnrn/*rn//设备连接时发此消息(指USB线与PC和终端电话都连接好).rn//参数wParam:(BYTE)序号; lParam: 0L.rn*/rn#define WM_DEVICECONNECT WM_USER+701rnrn/*rn//设备断开时发此消息(指USB线与PC或终端电话的任一方断开时发此消息).rn//参数wParam:(BYTE)0L--全部断开; lParam: 0L.rn// 1L--断开一台话机; lParam: (BYTE)序号rn*/ rn#define WM_DEVICEDISCONNECT WM_USER+702 rnrn/*rn//呼叫建立,即摘机时发送此消息. rn//参数wParam:(BYTE)序号; lParam: 0L.rn*/rn#define WM_OFFHOOK WM_USER+703 rnrn/*rn//呼叫断开,即挂机时发送此消息. rn//参数wParam:(BYTE)序号; lParam: 0L--挂机,1L--终端在保留的状态下按免提键退出了保留.rn*/rn#define WM_ONHOOK WM_USER+704 rn rn/*rn//来电时发送来电号码.rn//参数wParam:(BYTE)序号; lParam:char*.rn//普通的号码长度>1;如果长度是1,号码是2,那代表“出局”,号码是1,那代表“保密”。rn*/rn#define WM_CALLERID WM_USER+705 rnrn/*rn//来电响铃发此消息.rn//参数wParam:(BYTE)序号; lParam: (BYTE)0x01—表示一次铃声响;0x00—表示此次铃声结束rn*/rn#define WM_RING WM_USER+706 rnrn/*rn//通话过程中,收到本端DTMF键值时,发此消息.rn//参数wParam: (BYTE)序号; lParam: char.rn*/rn#define WM_KEY WM_USER+707rnrn/*rn//留言过程中,话机接听电话,停止留言,发此消息.rn//参数wParam: (BYTE)序号; lParam: 0L.rn*/rn#define WM_STOPLY WM_USER+708rnrn/*rn//通话过程中,收到话机按“静音”键rn//参数wParam: (BYTE)序号; lParam: (BYTE)0x01--静音开启;0x00--静音关闭.rn*/rn#define WM_MUTE WM_USER+709rnrnrnrnextern "C" rn//---------from PC to Phone-------------------------rn// 若无说明,则返回 0 代表成功rnUSBDLL_API int _stdcall InitDll(); //初始化,仅<em>调用</em>一次rnrnUSBDLL_API int _stdcall OffHookCtrl(int iDevIdx); //发送摘机命令rnrnUSBDLL_API int _stdcall HangUpCtrl(int iDevIdx); //发送挂机命令rnrnUSBDLL_API int _stdcall StartDial(int iDevIdx,const char* szDest); //发送拨号命令rnrnUSBDLL_API int _stdcall Bell(int iDevIdx,BYTE mode); //设置振铃开或关,mode: 0--关闭; 1--打开rnrnUSBDLL_API int _stdcall SendDTMF(int iDevIdx,const char* szDTMF); //与StartDial功能相似,供二次拨号用rnrnUSBDLL_API int _stdcall BindWindow(HWND hwnd); //绑定窗口,所有事件发送到此窗口,初始化时<em>调用</em>;系统接收消息 WM_DEVICECHANGE 后<em>调用</em>此函数rnrnUSBDLL_API int _stdcall UnBindWindow(); //解除窗口绑定, 则所有事件将不会发送到此窗口,窗口销毁时<em>调用</em>此函数rnrnUSBDLL_API int _stdcall QueryPhoneStatus(int iDevIdx); //查询话机摘挂机状态 0->挂机,1->摘机rnrnUSBDLL_API int _stdcall setLocalRecord(int iDevIdx,BOOL rec); //本地录放音,开 pc 时, rec: false--关闭;true--打开 rnrnUSBDLL_API int _stdcall setTalkRecord(int iDevIdx,BOOL rec); //通话录音,rec: false--关闭;true--打开 rnrnUSBDLL_API int _stdcall setLeaveRecord(int iDevIdx,BOOL rec); //留言录音,rec: false--关闭;true--打开 rnrnUSBDLL_API int _stdcall GetSerialNo(int iDevIdx, char * number); //获取序列号rnrnUSBDLL_API int _stdcall SetSerialNo(int iDevIdx, const char * number); //设置序列号rnrnUSBDLL_API int _stdcall Flash(int iDevIdx,UINT ivalue); //闪断一下,ivalue--Flash操作的时间长度,取值为0--100ms,1--180ms,2--300ms,3--600ms,4--1000ms之间。rnrnUSBDLL_API int _stdcall SetDialTone(int iDevIdx,BYTE mode); //设置拨号音开或关,mode: 0--关闭; 1--打开rnrnUSBDLL_API int _stdcall SetAutoAnswer(int iDevIdx,BYTE mode); //设置自动接听开或关,mode: 0--关闭; 1--打开rnrnUSBDLL_API int _stdcall SetFlashTime(int iDevIdx,UINT ivalue); //设置Flash值, ivalue 取值为0--100ms,1--180ms,2--300ms,3--600ms,4--1000ms之间rnrnUSBDLL_API int _stdcall SetOutcode(int iDevIdx, const char * code); //设置出局码,最多3位rnrnUSBDLL_API int _stdcall StartRecordFile(int iDevIdx, const char* strFileName, int iType); //开始录音操作, strFileName: 录音文件名,完整的路径rn //如:"C:\\record\\sound.wav"。iType: 录音类型:0:本地录音;1:通话录音;2:留言录音rnrnUSBDLL_API int _stdcall StopRecordFile(int iDevIdx); //停止录音rnrnUSBDLL_API int _stdcall ZhuanBo(int iDevIdx,UINT ivalue); //转拨闪断一下,ivalue--转拨操作的时间长度,取值为0--100ms,1--180ms,2--300ms,3--600ms,4--1000ms之间。rnrnUSBDLL_API int _stdcall Hold(int iDevIdx, BOOL bOn); //bOn--1:开启保留;0:关闭保留rnrnUSBDLL_API int _stdcall Mute(int iDevIdx, BOOL bOn); // bOn->1:开启闭音;0:关闭闭音;rnrn#endifrnrnrn在C#中如何<em>调用</em>这些接口。第一次接触这些开发!
C#调用VC6编写dll
c++的<em>dll</em>中有这么一个导出方法:int RetrieveCamGroupListFromServer(int nServerID, list *pCamGroupList); 参数list *pCamGroupList 写C#中应该怎么声明? list为标准模块库(stl)中的容器,CAM_GROUP_INFO是一个结构体。 在C#将此参数定义为List、LinkedList,运行时报无法封装泛型的参数。 哪位做过类似的,请给个提示。
Pb调用 c#编写的DLL
Pb<em>调用</em> <em>c#</em><em>编写</em>的DLL的方法 C#以其简单易用,功能强大深受大家喜爱.PowerBuilder作为C/S的MIS开发工具,十分简单灵活,开发时间短,开发及维护成本低,一直是中小企业信息管理系统的首选开发工具.但是PB的局限性限制了它进一步的发展,这个就不多说了,玩PB的朋友都清楚.PB如何<em>调用</em>C#写的DLL,这个兴趣一上来,就忍不住要解决它.经过多方查找资料加上自己写代码测试,算是解决这个难题.下面列出开发步骤及各种设置选项(开发工具VS2008SP1+PB9.0-8836)
如何调用C#编写的DLL
对方给我的接口函数是:rn1、 public int send(string s,string m)rnrn2、public int get(string t)rn t:是关键号rn 如:get('701')rn 返回值为int型:rn 1 找到对应的回复rn dx.sjh 手机号rn dx.msg 内容 rn dx.js 时间rn 0 没有找到对应的回复rn其中dx是动态连接库的名字rn
VFP调用C#编写的DLL
可以在C#中为Visual foxpro <em>编写</em>可以<em>调用</em>的DLL 文件。本例提供了一个范例,代码可以扩展。
C#调用易语言编写的DLL
C#<em>调用</em>易语言<em>编写</em>的DLL。这样就可以就可以充分利用易语言的快速<em>编写</em>优势。
C#调用delphi编写dll
我在asp.net中用C#<em>调用</em>delphi<em>编写</em>的<em>dll</em>,在我的自已的电脑可以正确<em>调用</em>,返回的值也是正确。rn而我挎到别的机子上去时,<em>调用</em>是可以<em>调用</em>,但返回的值却不正确。rn怎么办呢?我的电脑是装VS.net 2003、Delphi 6.0,而别的机子只有装VS.net。会不会是没有装Delphi的问题?
C#调用C#编写的DLL的问题
我用C#<em>编写</em>了一个DLL,然后在一个项目中使用这个DLL,但发现在项目运行调试的时候,竟然能进入到DLL所在的那个cs文件中一步一步地调试,请问哪位老大遇到过这个问题啊,谢谢赐教!
C# 调用C/C++ DLL
[code=c]typedef struct IdcInfo rn char name[30+1]; //rn char sex[1+1]; //'1'男 '2'女 rn char nation[2+1]; //民族 '01'-'57'rn char birth[8+1]; //YYYYMMDDrn char addr[70+1];rn char pid[18+1];rn char issue[30+1]; //发卡机关rn char valid_start[8+1]; //rn char valid_end[8+1]; //rn TIdcInfo;rnrn//读身份证,读取成功后,会在当前目录生成xp.bmp照片文件 // icc<em>dll</em>.<em>dll</em>rnSTDAPI ReadIdcInfo(int ReaderHandle, TIdcInfo *pIdcInfo);rnrn[/code]rnrnrn求C#中该如何<em>调用</em>,谢谢!
C#调用C语言的DLL
C#<em>调用</em>C语言实现的DLL时,出现CoTaskMemFree(IntPtr ptr ) 的错误,查了一下,感觉是参数没有对应上,哪位大侠帮我看看是哪里的问题好吗,跪谢~rnrnC语言被<em>调用</em>代码:rntest.<em>dll</em>rn__declspec(<em>dll</em>export) char* fun(DWORD mode,const char* password);rnchar* fun( DWORD mode, const char* password);rnrnC#<em>调用</em>侧代码:rn static String code;rn [DllImport("test.<em>dll</em>", CharSet = CharSet.Ansi)]rn public static extern String fun(int mode, String password);rnrn static void Main(string[] args)rn rn String s = "123";rn code = obl_crypto_hash(5, s);rn
c#调用c语言Dll
程序实现了C语言生成动态链接库,以及C#的<em>调用</em>方法
c# 调用c动态dll
[b][color=#FF0000]请问下面<em>调用</em>正确吗?rn为什么我的程序<em>调用</em>后还是出现SSL初始化错误rnSSLLib.<em>dll</em>rn放在了bin下[/color][/b]rnrn[code=C#]rnint OPENSSL_init(intmode)rnrnrn[/code]rnrnrnrnrn[code=C#][DllImport("SSLLib.<em>dll</em>",CallingConvention=CallingConvention.Cdecl,EntryPoint="OPENSSL_init")]]rnpublic static extern int OPENSSL_init(int mode);rnrnrnrn函数<em>调用</em>rnpublic void test()rnrn //为什么这里初始化会出错?rn int i= OPENSSL_init(0);rnrnrn[/code]rnrnrnrn[color=#FF0000]1楼 bdmh回复:是什么<em>调用</em>约定啊,stdcall还是cdecl,c默认是cdeclrnrnrnrn 答: 是 Cdecl.. 急死我了。 应该本地可以<em>调用</em>阿 为什么会这样 。 1点多就要测试了。rnrnrn2楼 evilant回复:SSL初始化错误,是不是找不到SSLib.<em>dll</em>?rnrnrn 答:rn SSLLib.<em>dll</em>放在程序bin->DeBug下了!rnrn3楼 guliang21 回复 :放到system32下试试rnrn 答:放了 。还是一样rnrn4楼 lizhibin11 大侠:回复:CallingConvention=CallingConvention.Cdecl把这个去掉rn 答: 去掉还是一样rnrn5楼 isjoe回复:是web项目吗?rn 答: winfrom[/color]rnrnrnrn
【C#】调用C语言生成的dll
C#<em>调用</em>C语言生成的<em>dll</em> using System; using System.Runtime.InteropServices; //与导入<em>dll</em>有关的命名空间 using System.Windows.Forms; class Example { //[导入<em>dll</em>,<em>dll</em>与exe在同一个文件夹下]导入<em>dll</em>中getCpuID1函数 [DllImport("CPUID32DLL.<em>dll</em>...
求救: c#调用 c的dll
<em>c#</em><em>调用</em> c的<em>dll</em>rn有两个传出参数 char* password,char* corp_idrnrn<em>dll</em>内部定义rnunsigned long user_num;rn.....rnsprintf(corp_id,"%06ld",user_num);rnrnunsigned char cur_word,chk_word,pwd_word[17] = ""rn.....rnsprintf(password,"%s",pwd_word);rnrnrn我在<em>c#</em>中用StringBuilder,password得不到值,corp_id得出的值是正确的,是什么原因啊???rn
C#调用c的dll问题
函数原型:int WINAPI rf_anticoll(unsigned short icdev, rn unsigned char bcnt,rn unsigned char *pSnr,rn unsigned char *pLen)rn参数:icdev:[IN] 通讯设备标识符rn bcnt: [IN] 取值4rn pSnr: [OUT]返回的卡序列号rn pLen: [OUT]返回序列号的长度rn返回:成功返回0rn我在<em>c#</em>中应如何定义入口参数?rnpublic static extern int rf_anticoll(int dev, byte bcnt, out string pSnr, out int len)rn这个不行。报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
C#调用C代码DLL
首先我们新建一个C语言的WIN32项目 选择项目类型为DLL库 在新建的项目中我们添加Ccode.h,Ccode.cpp两个文件 Code.h extern &quot;C&quot; __declspec(<em>dll</em>export) int Minus(int a, int b); extern &quot;C&quot; __declspec(<em>dll</em>export) int Add(int a, int b); Cc...
c#初学,调用c的dll
c的头文件rnextern "C" void _export _stdcall get_one_yc(int fac, int yc_dot, float *yc_value);rnrn<em>c#</em><em>调用</em>我这样写rn public class DllTestrn rn [DllImport("BaseDll.<em>dll</em>")]rn private extern static void get_one_yc(int fac, int yc_dot, float *yc_value);rn rnrn提示“指针和和固定大小缓冲区只能在不安全的上下文中使用”,我这样写对吗,要怎么改,之后要如何用这个函数,帮忙写写吧,多谢了
C#调用C Dll的问题
在C#中<em>调用</em>C写的Dll,rn函数原型为 void GetPic(char * szCode, BYTE * pPicture)rnrn用C#建个窗口应用程序rnrn [DllImport("PictureGenerator.<em>dll</em>", EntryPoint = "GetPic")]rn static extern void GetPic(string szCode, byte[] pPicture);rnrnrn private void Form1_Load(object sender, EventArgs e)rn rn rn Byte[] pPic = new Byte[9000];rn GetPic("test", pPic);rn rnrn这样是可以<em>调用</em>的。rnrn但是,同样的代码,放在WEB中就不行了。在运行到GetPic时就会出错。说是 rnNullReferenceException: 未将对象引用设置到对象的实例rn这是为什么啊,窗口程序的与WEB有什么不同么。
C#调用C DLL异常
最近在开发过程中需要使用C#<em>调用</em>C写的DLL,但在<em>调用</em>过程中遇到这个问题:“尝试读取或写入受保护的内存 这通常指示其它内存已损坏”,出现错误的地方可能为C#定义的结构体与C定义的结构体转换错误。详细如下:rn1.引用外部C的DLL:rn[code=csharp][DllImport(@"C:\Users\Administrator\Documents\visual studio 2010\Projects\CSQLDLL\Debug\CSQLDLL.<em>dll</em>", EntryPoint = "CDBWriteFunc")]rn public static extern int CDBWriteFunc(ref DB_INFO_CTL_TBL dbinfo, [In, Out] USR_INFO_TBL []usrinfo,int count);[/code]rn2.C#中结构体定义:rn[code=csharp][StructLayout(LayoutKind.Sequential)]rn public struct DB_INFO_CTL_TBLrn rn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byDBName; // DB Namern [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byUsrName; // DB User Namern [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byIPAddr; // IPrn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byDBPwd; // Passwordrn ;rn [StructLayout(LayoutKind.Sequential)]rn public struct USR_INFO_TBLrn rn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byName;rn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byAge; rn ;[/code]rn3.C中的函数声明:rn[code=c]__declspec(<em>dll</em>export) INT __stdcall CDBWriteFunc( DB_INFO_CTL_TBL *dbinfo, USR_INFO_TBL *usrinfotbl,INT count );[/code]rn4.C中的结构体定义:rn[code=c]typedef structrnrn BYTE byDBName[20]; // DB Namern BYTE byUsrName[20]; // DB User Namern BYTE byIPAddr[20]; // IPrn BYTE byDBPwd[20]; // PasswordrnDB_INFO_CTL_TBL;rnrntypedef structrnrn BYTE byName[20]; rn BYTE byAge[20];rnUSR_INFO_TBL;[/code]rnrn抛出“尝试读取或写入受保护的内存 这通常指示其它内存已损坏”的异常,请问大师们这为毛???
C#调用C写的dll
我的步骤是这样的,大家帮忙看看。rn1。把c写的<em>dll</em>拷贝到<em>c#</em>工程的bin的debug下面。rn2。c的头文件如下rnextern "C" rnAMI_UTIL_API long AMI_UTIL_API_CALL getPropertyName(const char* propertyName1, char* propertyName2, int propertyNameLength);rnrn所以,在<em>c#</em>的代码里面,如下rn[DllImport("AmiUtil.<em>dll</em>", EntryPoint = "getPropertyName", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]rnprivate static extern long getPropertyName(string propertyName1, string propertyName2, int propertyNameLength);rn3。<em>调用</em>的时候,我写成如下rnstring str1, str2;rnnPropertyNameLength = 0;rngetPropertyName(str1, str2, nPropertyNameLength))rnrnrn正确的步骤和写法应该是怎么样的?
C#调用C DLL文件
这是我<em>调用</em>的 [DllImport("Zhuzhan.<em>dll</em>", EntryPoint = "IdentityAuthentication", CharSet = CharSet.Ansi)]rn static extern int IdentityAuthentication(string Div,byte[] RandAndEndata);rn他原始提供的是IdentityAuthentication(char* Div,char* RandAndEndata);rn 不过经常报错rnrn运行时遇到了错误。此错误的地址为 0x62ed646b,在线程 0xf9c 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。rnrn
c#怎么调用C的DLL?
有以下疑惑:rn1、c++的<em>dll</em>和c的<em>dll</em>有什么区别?rn2、<em>c#</em><em>调用</em>c的<em>dll</em>的时候有什么不同?rnrn有人说,<em>c#</em><em>调用</em>c的<em>dll</em>还要中间加一层c++的封装?rnrn另,我用vc6写以下的代码,有什么错?rnrn[code=C/C++]rn//<em>dll</em>.cpprn#include "Dll.h " rnint add(int a,int b) rn rnreturn a+b; rn rnint subtract(int a,int b) rn rnreturn a-b; rn rnrn[/code]rn[code=C/C++]rn//<em>dll</em>.hrnextern "C " _declspec(<em>dll</em>import) int add(int a,int b); rnextern "C " _declspec(<em>dll</em>import) int subtract(int a,int b); rn[/code]
C# 调用 C 写的DLL
'int __stdcall GetBasicInfo(HANDLE icdev,unsigned long &CardSN); rnPrivate Declare Function GetBasicInfo Lib "CMCC.<em>dll</em>" (ByVal icdev,ByRef CardSN&) As Longrn rn上面是 VB 6.0 中<em>调用</em> C DLL的代码 rn------------------------------------------------------------------------------------ rn那么 C# 遇到 &CardSN 该怎么写呢,请教,不胜感激 rn
C#调用C语言编写dll,如何释放内存?
我用C#<em>调用</em>了一个C语言<em>编写</em>的<em>dll</em>,在这个<em>dll</em>中分配了很多内存,但是也都是在<em>dll</em>中释放的。因为程序很大,最多时占用了500M多内存,但是最后程序运行完用FreeLibrary释放这个<em>dll</em>后,还是占用这么多内存,一点没有释放,请问这正常吗?还是有什么别的方法,加载的时候是使用的LoadLibrary。rnrn<em>dll</em>单独调试过,没有内存泄露
==>用C#怎么调用C语言编写的DLL?...在线等...
我最近搞一个短信群发程序,用到省移动网关接口。rn可看到C语言DLL,还有附带的.H文件 还有一个 .conf 和 .c 文件,我晕了!rn请大家指教?
菜鸟的问题:请问在C#下如何调用C编写dll
我是做仿真软件的,由于C#比VC++开发程序更快更简单,但是,由于原来用到的许多硬件板卡,都是采用VC++<em>编写</em>的DLL,现在我用的是ActiveX控件方法来间接<em>调用</em>老的VC++的Dll,觉得很麻烦,而Jave里面可以通过一个方法把C下面<em>dll</em>直接转化成jave下面的<em>dll</em>。rnrn我才学C#,不知道有没有什么简单的方法可以让C#<em>调用</em>C下面的<em>dll</em>呢?rnrn望各位大虾指导!
C#调用C或C++编写的DLL库
1.<em>编写</em>DLL文件 (1)新建DLL工程 (2)选择空工程,类型为DLL (3)添加.c文件 #include &amp;lt;stdio.h&amp;gt; struct struStudent { int a; int b; int c; }; extern &quot;C&quot;  __declspec(<em>dll</em>export) int add(struStudent strS...
c#调用c编写dll 关于指针问题
<em>dll</em>.h文件[code=c]#include rnrnstruct str_<em>dll</em>rnrn int age;rn char par_char3[ 256 ]; rn;rnrnstruct <em>dll</em>_testrn rn char par_char1[ 256 ]; rn char par_char2[ 256 ]; rn int* ptr_int;rn float par_float;rn void* Ptr_void;rn str_<em>dll</em> struct_str_<em>dll</em>;rn;rnrnextern "C" __declspec(<em>dll</em>export)rn int __cdecl change_str_<em>dll</em>(str_<em>dll</em> test_str_<em>dll</em>);rnrnextern "C" __declspec(<em>dll</em>export)rn int __cdecl foo(int ret);rnrnextern "C" __declspec(<em>dll</em>export)rnint change_<em>dll</em>_test(<em>dll</em>_test* ptr_<em>dll</em>_test);[/code]rn<em>dll</em>.cpp文件[code=c]#include "test_cpp.h"rnrnint change_str_<em>dll</em>(str_<em>dll</em> test_str_<em>dll</em>)rnrn test_str_<em>dll</em>.age = 10;rn return 0;rnrnrnint foo(int ret)rnrn return (ret+1);rnrn rnrn//int change_<em>dll</em>_test(char* buffer1, char* buffer2, double* ptr_double, float par_float, void* Ptr_void)rnint change_<em>dll</em>_test(<em>dll</em>_test* ptr_<em>dll</em>_test)rnrn strncpy(ptr_<em>dll</em>_test->par_char1, "test buffer1...", 256);rn strncpy(ptr_<em>dll</em>_test->par_char2, "test buffer2...", 256);rn int* i;rn int j = 99;rn i = &j;rn ptr_<em>dll</em>_test->ptr_int = i;rn ptr_<em>dll</em>_test->par_float = 12;rn ptr_<em>dll</em>_test->Ptr_void = i;rn ptr_<em>dll</em>_test->struct_str_<em>dll</em>.age = 24;rn strncpy(ptr_<em>dll</em>_test->struct_str_<em>dll</em>.par_char3, "test struct is over!", 256);rnrn return 0;rn[/code]rn<em>c#</em><em>调用</em>文件如下显示:rn[code=csharp]rn[DllImport("TEST_DLL.<em>dll</em>", CallingConvention = CallingConvention.Cdecl)]rnprivate static extern int change_<em>dll</em>_test(ref <em>dll</em>_test ptr_<em>dll</em>_test);rn<em>dll</em>_test ptr_<em>dll</em>_test = new <em>dll</em>_test();rnint i = change_<em>dll</em>_test(ref ptr_<em>dll</em>_test);[/code]得到的int* ptr_int;void* Ptr_void,是个地址,在<em>c#</em>中如何得到对应的值,具体代码该怎么写 或者说一下方向我自己查
C编写的DLL库被C#调用的问题
各位大侠:rn 本人最近在做一个项目,用C生成了一个<em>dll</em>库,函数的内容我大致说一下,因为内容很多,我就不贴出具体代码了。rn 函数格式:rn long test(char *input,int srcLen,char *output,int *desLen)rn 功能就是 输入input和长度srcLen。输出经过加密的output及加密后的字符串长度。rn 加密成功函数返回0,失败返回1.rnrn 我生成的DLL库在VC中验证是正确的。rn 但是在C#里<em>调用</em>这个<em>dll</em>库:rn [DllImport("NewAESDLL.<em>dll</em>", CallingConvention = CallingConvention.StdCall)]rn internal static extern long test(string input, int inlen, ref StringBuilder output, ref int outlen);rn执行后,打印output、outlen均不正确。rnrn不知道是 我的函数实现的不对,还是我的DLL<em>调用</em>有什么问题。所以我把函数改了下,把返回结果写死:rnlong test(char *input,int srcLen,char *output,int *desLen)rnrn .......//功能省略;rn strcpy(output,"ABCDE");rn *desLen =5;rn return 0;rnrnrn这样<em>调用</em>C#里直接报内存错误了。rnrn该怎么办呢?
Asp.Net(c#)中调用c/c++ 编写的Dll的 问题
大概意思是,我现在有个用c/c++<em>编写</em>好的Dll,现在想在Asp.Net(<em>c#</em>)中<em>调用</em>,是用来控制远程的一台设备的,查了写帖子,都说是用[DllImport]给弄进去用,我试了下,编译是可以通过,但出来的结果好象不对劲,所以不知道是不是参数设置的问题. 函数原型是类似 long Func1(const char* a,char *b,long &c,BYTE &d),我引入到C#里面后,参数是该怎么个写法啊? 有人能给个例子吗?
C# 调用 C 编写dll 中的数据类型问题
我用 C 写了一个动态链接库,函数中含有定长字符数组 (const char*) 类型的参数和返回值:rnrn[code=c]rnextern "C" rn __declspec(<em>dll</em>export) const char* ResolveText(int wcn, int head, int tail, const char* text, const char* separators);rnrn[/code]rnrn现在我要用 C# <em>调用</em>这个库,但不知道 const char* 在 C# 中对应什么类型。自己在网上查了,有说用 IntPtr 的也有说用 string 的,但我试了几下,都会抛出异常。请问 C# 中这个函数的声明和使用应该怎么写?
DLL调用编写自己的DLL
1.delphi<em>调用</em>C语言动态连接库 2.动态<em>调用</em>Dll 3.MAKE_DLL目录演示如何<em>编写</em>DLL文件。
DLL编写与DLL函数的调用
DLL<em>编写</em> 本人 IDE用的CodeBlocks 首先 新建一个工程, 工程选项里有个dynamic link library,选择建立。 然后 蹦出两个文件,一个头文件,一个c文件。 头文件里写函数声明,c文件里写函数实现。 好 重头戏 如何写函数声明 在CodeBlocks中 已经帮您宏定义好了很多东西 所以你只需要按以下格式敲代码即可 函数返回值类型 空格 DLL_EXPORT ...
在Delphi中调用C编写的DLL
我在C中写了一个DLLrn__declspec(<em>dll</em>export) int GetMD5(unsigned char *pBuf, int BufLen, char *OutMD5Str, int OutBufSize)rnrn ........rn if(OutBufSizern然后我在Delphi中<em>调用</em>rntypern TMD5Func = function(Buffer:PChar; BufLen:Integer; var MD5String:PChar; Size:Integer):Integer;cdecl;rnrn......rnvar OutMD5:PChar;rnMD5 := TMD5Func(ProcAddr);rnMD5(PChar(Edit1.Text), Edit1.GetTextLen, OutMD5, 32);rnrn为什么一<em>调用</em>就会出错????????rnrnrn
关于C编写的DLL在delphi调用
现有一个动态链接库BANK.DLL,其中有函数:rnint Comm(char *server, int port, char *reqbuf, int reqlen, char **ansbuf, int *anslen);rn我需要在DELPHI中<em>调用</em>它,如下书写是否正确?rnfunction Comm(server:pchar;port:integer;reqbuf:pchar;reqlen:integer;ansbuf:pchar;anslen:pinteger):integer;stdcall;external 'bank.<em>dll</em>' name 'Comm';rn 我最担心的是char **ansbuf 在DELPHI中对应什么数据类型rnrn 谢谢!
纯C下DLL 编写调用例子
非常完整非常精简的用纯C语言实现的动态链接库<em>dll</em><em>编写</em>及<em>调用</em>的例子,只有两个简短程序。
编写VB可调用C/C++ DLL
1.创建Win32控制台应用程序,选择Dll ,附加选项为空项目。 2.添加my<em>dll</em>.h 、my<em>dll</em>.cpp 、my<em>dll</em>.def三个文件 3.分别编辑三个文件。如下 my<em>dll</em>.h中: #include int WINAPI Add( char *tString);my<em>dll</em>.cpp文件中: #include "my<em>dll</em>.h" int WINAPI Add( char *t
关于delphi调用c\c++编写dll
关于delphi<em>调用</em>c\c++<em>编写</em>的<em>dll</em>,有没有问题?能够顺利<em>调用</em>成功的话,能不能给出一个如何在delphi中引用这种动态连接库的实例?
怎样调用c语言编写的DLL?
我用vc++.net<em>编写</em>一个ClassLibaray类,里面需要<em>调用</em>c<em>编写</em>的DLL.请问怎么<em>调用</em>.只要解决了再加200分.
java调用c编写dll库的问题?
我手上有个<em>dll</em>库和.h文件rn现在的问题是库里面的函数名和我用javah反编译java的类文件得到的函数名不一样rn例如:java文件里面有public native int construct();rnjavah后变成... Java_JavaCop_construct(...);rn而我有的那个<em>dll</em>的头文件里面是Java_JavaCop_construct_stub(...);rn比我的版本的javah得到的函数多了个_stub,这样导致我运行程序<em>调用</em><em>dll</em>rn里面的函数时,抛出的例外如下:rnjava.lang.UnsatisfiedLinkError:...rnrn请问大侠,这个问题如何解决,是不是它当时的javah和我的版本的javah不兼容的rn问题导致的,那么这样看,它原来的javah的版本是jdk的那个版本?rn多谢!!!急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1rnrn 如何定义java里面的函数,才能用javah<em>调用</em>时产生和<em>dll</em>中一致的函数名呢?rn 就比如那个construct(...);rn 怎么改名字才能出现...construct_stub(...); ???rnrn 简单的变成construct_stub是不可以的,javah后变成...construct_1stubrn
QT如何调用C编写的DLL
如题,除了使用QLibrary还有没有别的办法,有人说是在pro文件里面添加一行这样的代码rnLIBS += "D:\phone\sipc\<em>dll</em>\abc.<em>dll</em>"rn然后在<em>调用</em><em>dll</em>函数的时include一下<em>dll</em>中的头文件。但是这个办法的<em>dll</em>是不是用C++写的<em>dll</em>,用C写的<em>dll</em>好像不能这样<em>调用</em>吧!? 还有没有什么办法,请高手帮我解答一下!!!!rnrnC++里面是如何<em>调用</em>C的DLL的?? 也帮我解答一下吧
C编写的动态库dll C++调用
在工作过程中,其他人给我的C动态库,我用C++<em>调用</em>老是失败,所以做个试验验证一下写的方式,直接上代码 //add.h #ifndef C_LIB_H #define C_LIB_H #define DLLExport __declspec(<em>dll</em>export) #ifdef __cplusplus extern "C"{ #endif DLLExport int add(int
C# 编写DLL 让VB调用
VB<em>调用</em>C#<em>编写</em>的DLL 使用VS C#<em>编写</em>DLL函数。封装好,实现DLL注册功能。达到VB<em>调用</em>。
C# 调用VC++编写的DLL库
C#<em>调用</em>VC++<em>编写</em>的DLL动态库,将编译好的DLL拷贝到bin\Debug下,可使用C#<em>调用</em>里面的方法
vc 编写 dll c#调用 源码
自己写的一个 vc<em>编写</em> <em>dll</em>过程,和使用<em>c#</em><em>调用</em> <em>dll</em>的过程,有源码和简单的使用说明。希望对大家有用。
DELPHI编写的DLL用C#如何调用
DELPHI<em>编写</em>的DLL用C#如何<em>调用</em>rn
delphi编写dll在C#中如何调用
delphi<em>编写</em>的<em>dll</em>函数如下:rnfunction SendDatafun(comport:integer;bps:longint;address:integer;sendData:pchar;color:integer;showMode,showSpeed,showTime:integer):integer;rnStdCall external '../<em>dll</em>tpzp.DLL';rn在C#中如何<em>调用</em>,我是用下边的方法,总是提示“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”rn[DllImport("<em>dll</em>tpzp.<em>dll</em>", CharSet = CharSet.Ansi)]rn private static extern int SendDatafun(int comport, long bps, int address, StringBuilder sendData, int color, int showMode, int showspeed, int showtime);rn在线等,各位大神帮帮忙啊rn
c#编写dll供pb调用问题
想用<em>c#</em><em>编写</em>一个<em>dll</em>给pb使用rn求转utf-8的<em>dll</em>或代码<em>编写</em>方式,网上的一些已经实验过了无法使用rn求大神赐教,谢谢!
vb 如何调用C#编写的.dll文件。
这个.<em>dll</em>文件,是<em>c#</em>开发的,是一个web项目,放在/bin目录下的。
有谁知道 vc调用C#编写dll
vc6.0中如何<em>调用</em>C#<em>编写</em>的库类型的*.<em>dll</em>文件?
C#编写的windows服务 如何调用dll
在C#<em>编写</em>的windows服务 如何<em>调用</em><em>dll</em> (可以是mfc写的<em>dll</em>么?)rn是在OnStart里面么? rn具体怎么做 麻烦那位说一下 拜托了!
c#中如何调用bcb编写dll
我用bcb<em>编写</em>了一个简单的<em>dll</em>,参数是String类型的,返回类型也是String类型的,在bcb中<em>调用</em>是没有任何问题的.而现在我想在<em>c#</em>和asp.net中也<em>调用</em>这个<em>dll</em>,按正常的方法<em>调用</em>了却提示"无法加载<em>dll</em>".rnrn 哪位朋友可以给个好建议,或者给个例子(包括bcb<em>编写</em><em>dll</em>和<em>c#</em><em>调用</em><em>dll</em>就最好不过啦.),先谢谢啦.
C#中调用C++编写的Dll
本博文基于VS2013,实现了使用C#语言<em>调用</em>C++<em>编写</em>的DLL。并整理出C++函数的各项修饰参数extern ”C”、__declspec(<em>dll</em>export)、__stdcall等,C#<em>调用</em>时需要引入的命名空间System.Runtime.InteropServices,DllImport的各项属性。
关于C#调用第三方VC编写的DLL
操控一个硬件,需要<em>调用</em>第三方SDK,SDK是VC写的,因为对VC熟悉,想在C#中写,但是现在碰到一个问题,<em>调用</em>其中一个函数的时候出现问题:rnVC中函数原型:rnint WINAPI ZAOpenDeviceEx(HANDLE* pHandle, int nDeviceType,int iCom=1,int iBaud=1,int PackageSize=2,int iDevNum=0);rn我在C#中的引用方式是:rn[DllImport("SynoAPIt.<em>dll</em>", EntryPoint = "ZAOpenDeviceEx", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, ExactSpelling = false)]rnpublic static extern int ZAOpenDeviceEx(IntPtr pHandle, int nDeviceType,int iCom,int iBaud,int nPackageSize,int iDevNum);rn因为VC函数声明中有四个默认参数,在C#的声明中这四个参数怎么处理rn1.是写成rnpublic static extern int ZAOpenDeviceEx(IntPtr pHandle, int nDeviceType,int iCom,int iBaud,int nPackageSize,int iDevNum);rn<em>调用</em>的时候语句为:rnIntPtr pHandle=new IntPtr();rnZAOpenDeviceEx(pHandle,0,1,1,2,0);rn则会出错:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”rn2.还是写成:rnpublic static extern int ZAOpenDeviceEx(IntPtr pHandle, int nDeviceType);rn<em>调用</em>的时候语句为:rnIntPtr pHandle=new IntPtr();rnZAOpenDeviceEx(pHandle,0);rn则会出错:rn“托管调试助手“PInvokeStackImbalance”在“D:\Project\WindowsApplication1\WindowsApplication1\bin\Debug\WindowsApplication1.exe”中检测到故障。rn其他信息: 对 PInvoke 函数“WindowsApplication1!WindowsApplication1.Form1::ZAOpenDeviceEx”的<em>调用</em>导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的<em>调用</em>约定和参数与非托管的目标签名是否匹配。”rnrn注:该SDK中还有一个比较简单的函数rnint WINAPI ZAGetUSBDevNum(int* iNums);rn采用如下方式声明<em>调用</em>运行正常rn[DllImport("SynoAPIt.<em>dll</em>", EntryPoint = "ZAGetUSBDevNum", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, ExactSpelling = false)]rnpublic static extern int ZAGetUSBDevNum(ref int iNums);
qt5编写dllc#调用
最近手头有个项目, qt<em>编写</em><em>dll</em>, 实现串口通信, 并用<em>c#</em> wpf<em>调用</em> 参考文献:https://www.cnblogs.com/feiyangqingyun/p/3720777.html 这里使用的是qtwinmigrate的类库 移植上面作者实现<em>dll</em>时, 报了很多错,猜测可能是作者是qt4写的 qt <em>dll</em> 1. 目录树: src是qtwinmigrate中的文件 m...
在java中调用C#编写dll
在java中<em>调用</em>C#<em>编写</em>的<em>dll</em>所遇到的问题 前言:前一段时间接了个项目,需要用到第三方提供的C#<em>编写</em>的<em>dll</em>,本身项目是java语言。由于之前用过在java中<em>调用</em>C语言的<em>dll</em>,所以开始是考虑把C#的<em>dll</em>用C封装成新的<em>dll</em>,然后使用JNA在java中<em>调用</em>,但是实际操作的时候,由于C<em>调用</em>C#需要使用托管语言,由于本人对于C及C#都不了解,在C封装C#导出成<em>dll</em>的时候,因为是非托管程序
asp如何调用C#编写的DLL?
using System;rnusing System.IO;rnusing System.Security.Cryptography;rnusing System.Text;rnrnnamespace DataCryptornrn /// rn /// 哈希加密类rn /// rn public class HashMethodrn rn rn private HashAlgorithm HashCryptoService;rn /// rn /// 哈希加密类的构造函数rn /// rn public HashMethod()rn rn HashCryptoService = new SHA1Managed();rn rn /// rn /// 加密方法rn /// rn /// 待加密的串rn /// 经过加密的串rn public string Encrypto(string Source)rn rn byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);rn byte[] bytOut = HashCryptoService.ComputeHash(bytIn);rn return Convert.ToBase64String(bytOut);rn rn rnrn
C#调用delphi编写dll问题?
我在asp.net中用C#<em>调用</em>delphi<em>编写</em>的<em>dll</em>,在我的自已的电脑可以正确<em>调用</em>,返回的值也是正确。rn而我挎到别的机子上去时,<em>调用</em>是可以<em>调用</em>,但返回的值却不正确。rn怎么办呢?我的电脑是装VS.net 2003、Delphi 6.0,而别的机子只有装VS.net。会不会是没有装Delphi的问题?
C#中调用VC++编写的DLL的问题
下面是我要<em>调用</em>的C++文件中的一个接口函数:rnint FCIterativeAdd(char* szimgpath[], // 需要叠加图像的路径rn char szoutputimg[], // 输出图像文件路径rn int nnum, // 叠加图像的数目rn BOOL* pmask[] // 标志那层需要作溶合rn );rn<em>调用</em>是这样写的:rnDllImport("FaceClone.<em>dll</em>", EntryPoint = "FCIterativeAdd", ExactSpelling = false,CharSet =CharSet.Ansi)] rnpublic static extern int FCIterativeAdd(String[] szimgpath,// 需要叠加图像的路径rn string szoutputimg, // 输出图像文件路径rn int nnum, // 叠加图像的数目rn bool[] pmask); //哪层需要融合rn在使用的时候如下:rn String szoutpath = "D:\\MyWebSite\\picture\\result.bmp";rn String[] szadd=new String[6];rn szadd[0] = "D:\\MyWebSite\\bk\\0.bmp";rn szadd[1] = "D:\\MyWebSite\\body\\1.bmp";rn szadd[2] = "D:\\MyWebSite\\cloth\\2.bmp";rn szadd[3] = "D:\\MyWebSite\\hair\\4.bmp";rn szadd[4] = "D:\\MyWebSite\\picture\\face.bmp";rn szadd[5] = "D:\\MyWebSite\\hair\\5.bmp";rn rcode = Win32API.FCIterativeAdd(szadd,szoutpath,5,pmask);rnFCIterativeAdd()是一个叠加函数,目的是将一次性传入的五张bmp图片按数组索引次序依次叠加后生成一张新图:result.bmp输出,但每一次运行的结果rcode都等于-1003,也就是说是图片叠加失败,不知道问题出在什么地方?是因为类型转换问题还是其他?请高手指导下。
C#如何调用VB编写的ActiveX dll??
ActiveX <em>dll</em>是VB<em>编写</em>的接口,rn我注册引用后,在C#里不会出现语法错误,但是在运行的时候,出现"ActiveX Component cann't create.."的信息,大意是不能创建对象,不知道如何解决??rnrn 说明:在VB下引用这个ActiveX 没有问题.
JS调用c#编写的DLL 源代码
JS<em>调用</em><em>c#</em><em>编写</em>的DLL 源代码 包含<em>c#</em>新建类库,生成DLL,以及DLL的注册 ,JS<em>调用</em>DLL的两种方法的整个过程。
C#编写Dll供C++调用
<em>c#</em><em>编写</em>COM接口,供C++<em>调用</em>,附程序源码。大家可参阅后举一反三。
C#调用其他语言编写dll方法
C#<em>调用</em>其他语言<em>编写</em>的<em>dll</em>方法。有点粗糙不过能用
C++如何调用C#编写的DLL
由于C#编绎出来的DLL不是计算机所能直接识别的二进制指令码,需要CLS进行再解释,说到这,我想有些朋友应该知道C#项目需要引用C++<em>编写</em>的DLL时,可以直接引用DLLMPORT来实现<em>调用</em>,而反向的话,C++项目却不能简单靠引用来使用C#<em>编写</em>的DLL。由于C++项目默认配置是没有公共语言运行支持的,因此我们需要更改一些配置,来实现C++项目对C#<em>编写</em>DLL的<em>调用</em>。具体如何操作,我会在接下来的文章中
请问C#如何编写调用dll啊?
请问C#如何<em>编写</em>和<em>调用</em><em>dll</em>啊?rn请详细些,最好有带注释的例子,谢谢!
C# 调用vc编写dll 的问题
struct _IMAGE_POINTERrn DWORD is_OK; rn unsigned char* p_image1; rn;rnrn函数原型 rn_IMAGE_POINTER* GetImageBuffer(DWORD cnt)rnrn我该怎么定义接口文件,怎么拿到图象?rn
InstallShield12 如何调用C#编写dll文件?
最近在给项目打包成安装文件,需要更改web.config文件,而数据库的连接字符串做了加密操作,InstallShield12 没有加密的函数,所以就打算<em>调用</em>自己写的加密<em>dll</em>文件,但是在网上查了许多资料,最后在项目中试用的时候总是不行,可有大神帮帮忙....rnHash.<em>dll</em> 这是<em>dll</em>名称; Class BpmHash; Hasher()方法名;rnrnInstallshield12 中的Script:rnrnprototype string Hash.Hasher(string); //在这里添加了cdecl结果也一样rnrnstring <em>dll</em>Path,szStr;rnobject szDll;rnrn<em>dll</em>Path = SUPPORTDIR^"Hash.<em>dll</em>";rnset szDll = CoCreateObjectDotNet(<em>dll</em>Path,"Hash.BpmHash");rnszStr = szDll.Hasher("连接字符串");rnrn生成安装包的时候不会报错,安装时候报:无法<em>调用</em><em>dll</em>...rnrn
c++如何调用c#编写dll文件?
在网上找了些资料,发现在c++程序中使用如下方法:rn#using "..../.../XX.<em>dll</em>"rn直接<em>调用</em><em>c#</em>的<em>dll</em>不成功。rnrn难道c++<em>调用</em><em>c#</em><em>编写</em>的<em>dll</em>文件,只能通过com组件的形式吗?rn
asp.net(C#)如何调用Delphi编写的DLL?
我用Delphi<em>编写</em>了的DLLrn在ASP.Net中如何<em>调用</em>??
求解 C#调用fortran编写的DLL 出错
我用C#<em>调用</em>fortran<em>编写</em>的DLL rn 程序调试可以正常运算,但是直接运行就报错。求解rn[img=http://hi.csdn.net/attachment/201102/28/7084015_1298878695b5og.jpg][/img]
C#如何调用C++编写的Dll
Dll不是我写的,也没有源码,我目前是这样写的:rn[code=csharp]rn[DllImport("JLogin.<em>dll</em>")]rnpublic static extern int login(ref string userName,ref string passWord, StringBuilder result); rnstring userName = user.UserName;rnstring passWord = user.PassWord;rn StringBuilder result = new StringBuilder(1024);rnlogin(ref userName, ref passWord, result);rn[/code]rn这个<em>dll</em>只有一个方法: loginrn现在result调试后是空白的,怎么办?正常应该返回Html内容
c#调用java编写dll的问题
有下面这样的文档说明,想问一下,使用C#来开发,该怎样创建这个接口实例及释放这个接口实例呢?rn文档中提到每种开发语言都有自己<em>调用</em>COM组件的方式。那么C#该是怎样的呢?下文中提到的a.<em>dll</em>是java开发的。rnrn一、接口概述rn本接口系统一共包含三个文件,分别为a.<em>dll</em>、b.exe、c.pbd。rn所有服务均集成在动态链接库a.<em>dll</em>中,这个<em>dll</em>文件需要注册成com组件。rnb.exe和c.pbd文件,用于接口升级。rn以上三个文件必须在同一个目录中。rn<em>调用</em>系统只需要<em>调用</em>Program ID为a的组件中的服务就可以了。rnrn下面将讲述接口的具体使用方法及例程。rn(注:本文提供的PB示例代码,作用是更直观的解释本方案内容,以方便所有厂商进行开发,仅供参考之用。)rn二、接口环境rn在业务机上需要具备接口环境,具体操作如下:rn1、 将【接口库<em>dll</em>】文件夹中所有的<em>dll</em>文件拷入C:\WINDOWS\system32下。rn2、 注册a.<em>dll</em>文件,a.<em>dll</em>为接口的类库文件,具体注册方法如下(其它<em>dll</em>无须注册):rn3、 a.<em>dll</em>注册方法:rn点击 开始 -> 运行 ->输入 regsvr32 a.<em>dll</em> 回车rn如果显示 “a.<em>dll</em> 中的DLLRegisterServer” 成功字样,说明注册成功。rnrn三、接口实例创建、接口示例回收rn在登陆<em>调用</em>系统时需要进行接口实例的创建,创建成功以后,才能正常<em>调用</em>接口服务。rn建议在<em>调用</em>系统登陆的同时,<em>调用</em>接口登陆的服务,同时在退出<em>调用</em>系统时,需要进行接口实例的回收,以免造成资源浪费。rn1、接口实例的创建,创建ole对象rn通过第二步操作,接口<em>dll</em>(a.<em>dll</em>)已经被注册成了COM组件。每种开发语言都有自己<em>调用</em>COM组件的方式。开发人员可以根据自己所使用的开发语言来<em>调用</em>本接口的COM组件,创建接口对象的实例。本接口的Program id为:a,Class id为: E434ECF4-CB87-446B-8497-B792A2BF213D。rnrnPB示例,各种开发语言方法不同,下面代码仅供PB程序员参考:rn//创建嵌入式接口对象,<em>调用</em>com组件rnint virnOleobject X rnX =create Oleobject //创建ole对象proxyrnvi= X.connecttonewobject('a') //连接com组件rnif vi <> 0 thenrn messagebox('错误','创建嵌入式接口a对象失败!')rn return rnend ifrnrn2、接口实例的回收:rn在不使用本接口的时候,需要回收接口实例,以免造成资源浪费。rnPB示例,各种开发语言方法不同,下面代码仅供PB程序员参考::rn//销毁嵌入式接口对象rnX.DisconnectObject() // DisconnectObject方法为PB语言的系统函数rnDestroy Xrn
C#调用VC编写的DLL出现的问题
各位 rn我在C#.NET中<em>调用</em>VC编的DLL动态链接库,其中DLL中有一个含结构体的函数,我在C#中如何<em>调用</em>?以下我是这样做的, rnC#声明: rn[DllImport("gprs<em>dll</em>.<em>dll</em>",EntryPoint="DSGetModemByPosition"] rn public static extern int DSGetModemByPosition(int pos,ref modem_information infor);//返回为1成功,其中modem_information为结构体,其类型为 rn public struct modem_information rn public uint modem_id; //modem ID号 rn public byte[] phone_num; / 号码 rn public UInt32 connect_time;//登陆时间 rn public UInt32 refresh_time;//刷新时间 rn public byte[] dynamic_ip;//动态地址 rn rn我在<em>调用</em>时先定义了一个结构体对象,并对其初始化 rnmodem_information modem=new modem_information(); rnmodem.dynamic_ip=new byte[4]; rnmodem.phone_num=new byte[12]; rn int success=my.DSGetModemByPosition(i,ref modem); rnmy为DSGetModemByPosition所在的一个类的对象 rn<em>dll</em>中DSGetModemByPosition是这样定义的: rnstruct __POSITION ;rntypedef __POSITION* POSITION;rnint DSGetModemByPosition(int pos,ModemInfoStruct * modeminfor)//ModemInfoStruct为结构体,其定义类型与上述C#定义一样的 rnint DSGetModemByPosition(int modempos, ModemInfoStruct *pModemInfo)rnrn //这个操作应当是互斥的rn //todo_edwrn int inx=0;rnrn POSITION pos;rn if (modempos
C#调用Delphi编写的Dll文件
该例主要实现,在C#中<em>调用</em>Delphi<em>编写</em>的Dll文件。
C#调用C++编写dll文件
C#项目代码,C#<em>调用</em>C++<em>编写</em>的<em>dll</em>文件,主要示例解决两个问题:1、DLL接口声明问题2、C#和c++数据类型匹配问题
编写c++的dllc#调用
1。注意多线程<em>调用</em>的问题,避免全局变量。 2。被<em>调用</em>的方法需要extern &quot;C&quot; __declspec(<em>dll</em>export)声明。 3。类型转换需要明确。再好用基本数据类型。 下次补充。。。...
(学习笔记)C++编写dll C#调用注意事项
1) c++ win32 <em>dll</em>项目需选择平台win32,否则<em>调用</em>时报错(原因未知,或许不能用win32 <em>dll</em>?) 2)<em>c#</em><em>调用</em>时候需要设置<em>调用</em>约定 /* [DllImport("<em>dll</em>3.<em>dll</em>", CallingConvention = CallingConvention.Cdecl)]//动态<em>调用</em> [DllImport("
Java中调用C#编写dll
http://blog.csdn.net/fywt98/article/details/46639177中解释的很清楚,这里只记录一下遇到的问题 1.在eclipse中使用javah.exe自动生成jni的头文件设置 设置完成后,在<em>编写</em>好java文件后,选择运行javah即可生成对应的头文件 2.将生成的<em>dll</em>放到java.library.path中后,在
VFP调用C#编写的DLL控件
因为VFP出来时还没有.NET,所以VFP不支持.NET,C#<em>编写</em>出来的DLL控件需要转换成系统COM组件,才能够被VFP<em>调用</em>,当然不仅仅局限于C#与VFP之间的<em>调用</em>,各种语言都有自己写COM组件的方法。 下面就先介绍下,关于VFP与C#之间的联系 第一步:C#<em>编写</em>COM组件 1、新建一个类库项目 2、将Class1.cs改为我们想要的名字(例如:MyClass.cs) ...
Qt程序中调用C#编写dll
最近在使用Qt整合以前的一个工具时,发现有几个<em>dll</em>是采用C#写的,当然可以把C#写的<em>dll</em>重新在Qt中用C++写,虽然这是几个C#写的<em>dll</em>的函数接口使用的参数都比较简单,只用了int和string类型等,但在函数内部却还使用了C#的专用一些类,如果重写还是很麻烦,就查找了一些文章,多数都是说采用把C#写的<em>dll</em>采用COM注册方式让Qt<em>调用</em>,但是这样又要重新编译以前的C#项目,实在是很麻烦,所以...
关于AutoCAD命令下载
关于AutoCAD的命令,使得快速绘图提供了方便,加快绘图的质量。 关于AutoCAD的命令,使得快速绘图提供了方便,加快绘图的质量。 相关下载链接:[url=//download.csdn.net/download/chuang_xin_123/2333539?utm_source=bbsseo]//download.csdn.net/download/chuang_xin_123/2333539?utm_source=bbsseo[/url]
dotnetbar v11.5.0.0破解补丁,内附原版下载地址下载
dotnetbar v11.5.0.0破解补丁,内附原版下载地址 相关下载链接:[url=//download.csdn.net/download/hridonyoc/6596479?utm_source=bbsseo]//download.csdn.net/download/hridonyoc/6596479?utm_source=bbsseo[/url]
进销存软件下载
进销存软件 相关下载链接:[url=//download.csdn.net/download/u012952000/6608337?utm_source=bbsseo]//download.csdn.net/download/u012952000/6608337?utm_source=bbsseo[/url]
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件
我们是很有底线的