C#如何调用dll(C语言)中全局变量 [问题点数:20分,结帖人Mio_Mikoto]

Bbs1
本版专家分:0
结帖率 33.33%
Bbs1
本版专家分:52
Bbs1
本版专家分:52
如何访问DLL中的全局变量
看了下关于DLL的东西,涉及到了DLL的创建、<em>调用</em>。 按照教程并不难,但是在访问DLL<em>全局变量</em>的时候遇到了问题,虽然都说访问DLL<em>全局变量</em>不好,但是怎么也得写出来才行撒。 问题如下: 写了个简单的测试
高手赐教 , c# 如何实现 dll 全局变量.
我 在一个编译为 <em>dll</em> 类里面,定义一个 静态变量数组, 改数组在 其 <em>调用</em><em>dll</em>的主程序中是唯一的,但是,主程序中还使用另一个<em>dll</em>,第2个<em>dll</em>也需要访问 第一个<em>dll</em>里已经被主程序初始化了的静
求大侠指点,关于DLL中全局变量的使用
我按照这个方法使用<em>全局变量</em>,却有如下提示 哪里使用有问题? 在exe内,我包含的头文件跟<em>dll</em>里的头文件有一点点不一样:exe中所使用的头文件,没有<em>dll</em>中头文件声明的extern __declsp
如何调用DLL中的全局变量
我在程序里<em>调用</em><em>dll</em>后,变量的地址始终是程序中的地址(4xxxxx),不是DLL中的地址(1xxxxxx)。rn为什么?
C#调用C语言的DLL
C#<em>调用</em>C<em>语言</em>实现的DLL时,出现CoTaskMemFree(IntPtr ptr ) 的错误,查了一下,感觉是参数没有对应上,哪位大侠帮我看看是哪里的问题好吗,跪谢~rnrnC<em>语言</em>被<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<em>语言</em>生成动态链接库,以及C#的<em>调用</em>方法
C#如何调用C语言实现的dll
在网上搜索到了一个des加密的c<em>语言</em>实现,rn.h文件:rn[code=C/C++]rn/* d3des.h -rn *rn * Headers and defines for d3des.crn * Graven Imagery, 1992.rn *rn * Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridgern * (GEnie : OUTER; CIS : [71755,204])rn */rnrn#define D2_DES /* include double-length support */rn#define D3_DES /* include triple-length support */rnrn#ifdef D3_DESrn#ifndef D2_DESrn#define D2_DES /* D2_DES is needed for D3_DES */rn#endifrn#endifrnrn#define DES_EN0 0 /* MODE == encrypt */rn#define DES_DE1 1 /* MODE == decrypt */rnrn/* A useful alias on 68000-ish machines, but NOT USED HERE. */rnrntypedef union rn unsigned long blok[2];rn unsigned short word[4];rn unsigned char byte[8];rn M68K;rnrnextern void deskey(unsigned char *, short);rn/* hexkey[8] MODErn * Sets the internal key register according to the hexadecimalrn * key contained in the 8 bytes of hexkey, according to the DES,rn * for encryption or decryption according to MODE.rn */rnrnextern void usekey(unsigned long *);rn/* cookedkey[32]rn * Loads the internal key register with the data in cookedkey.rn */rnrnextern void cpkey(unsigned long *);rn/* cookedkey[32]rn * Copies the contents of the internal key register into the storagern * located at &cookedkey[0].rn */rnrnextern void des(unsigned char *, unsigned char *);rn/* from[8] to[8]rn * Encrypts/Decrypts (according to the key currently loaded in thern * internal key register) one block of eight bytes at address 'from'rn * into the block at address 'to'. They can be the same.rn */rnrn#ifdef D2_DESrnrn#define desDkey(a,b) des2key((a),(b))rnextern void des2key(unsigned char *, short);rn/* hexkey[16] MODErn * Sets the internal key registerS according to the hexadecimalrn * keyS contained in the 16 bytes of hexkey, according to the DES,rn * for DOUBLE encryption or decryption according to MODE.rn * NOTE: this clobbers all three key registers!rn */rnrnextern void Ddes(unsigned char *, unsigned char *);rn/* from[8] to[8]rn * Encrypts/Decrypts (according to the keyS currently loaded in thern * internal key registerS) one block of eight bytes at address 'from'rn * into the block at address 'to'. They can be the same.rn */rnrnextern void D2des(unsigned char *, unsigned char *);rn/* from[16] to[16]rn * Encrypts/Decrypts (according to the keyS currently loaded in thern * internal key registerS) one block of SIXTEEN bytes at address 'from'rn * into the block at address 'to'. They can be the same.rn */rnrnextern void makekey(char *, unsigned char *);rn/* *password, single-length key[8]rn * With a double-length default key, this routine hashes a NULL-terminatedrn * string into an eight-byte random-looking key, suitable for use with thern * deskey() routine.rn */rnrn#define makeDkey(a,b) make2key((a),(b))rnextern void make2key(char *, unsigned char *);rn/* *password, double-length key[16]rn * With a double-length default key, this routine hashes a NULL-terminatedrn * string into a sixteen-byte random-looking key, suitable for use with thern * des2key() routine.rn */rnrn#ifndef D3_DES /* D2_DES only */rnrn#define useDkey(a) use2key((a))rn#define cpDkey(a) cp2key((a))rnrnextern void use2key(unsigned long *);rn/* cookedkey[64]rn * Loads the internal key registerS with the data in cookedkey.rn * NOTE: this clobbers all three key registers!rn */rnrnextern void cp2key(unsigned long *);rn/* cookedkey[64]rn * Copies the contents of the internal key registerS into the storagern * located at &cookedkey[0].rn */rnrn#else /* D3_DES too */rnrn#define useDkey(a) use3key((a))rn#define cpDkey(a) cp3key((a))rnrnextern void des3key(unsigned char *, short);rn/* hexkey[24] MODErn * Sets the internal key registerS according to the hexadecimalrn * keyS contained in the 24 bytes of hexkey, according to the DES,rn * for DOUBLE encryption or decryption according to MODE.rn */rnrnextern void use3key(unsigned long *);rn/* cookedkey[96]rn * Loads the 3 internal key registerS with the data in cookedkey.rn */rnrnextern void cp3key(unsigned long *);rn/* cookedkey[96]rn * Copies the contents of the 3 internal key registerS into the storagern * located at &cookedkey[0].rn */rnrnextern void make3key(char *, unsigned char *);rn/* *password, triple-length key[24]rn * With a triple-length default key, this routine hashes a NULL-terminatedrn * string into a twenty-four-byte random-looking key, suitable for use withrn * the des3key() routine.rn */rnrn#endif /* D3_DES */rn#endif /* D2_DES */rnrn/* d3des.h V5.09 rwo 9208.04 15:06 Graven Imageryrn ********************************************************************/rn[/code]
C 中的DLL C#中如何调用
C :rnrnint PubStrToIso ( char * pcSourceStr, int nStrLen, ISODataStru * TargetIsoStru, int *pnPosition) rnrnC#:rn结构定义:rnrn private delegate int FIELD_PACKAGER_PACK (ISO_FIELD_DEF pthis, byte pfieldbuf, short fieldlen, byte poutdata);rn private delegate int FIELD_PACKAGER_UNPACK(ISO_FIELD_DEF pthis, byte pfieldbuf, short fieldlen, byte poutdata);rn [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]rn struct ISO_FIELD_DEFrn rn short len; /* 数据域最大长度 */rn LENGTH_TYPE lentype; /* 数据域长度类型: 1--LLVAR型 2--LLLVAR型 */rn ALIGN_TYPE align; /* 对齐类型 */rn char padchar; /* 补齐字符 */rn FIELD_PACKAGER_PACK pack; /* 打包函数指针 */rn FIELD_PACKAGER_UNPACK unpack; /* 解包函数指针 */rn ; rn [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]rn struct ISO_FIELDrn rn short len;rn short off; /* 指向iso->databuf缓冲区的偏移,数据中不含长度类型的几个字节 */rn ; rn [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]rn public struct ISODataStrurn rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2560)]rn ISO_FIELD []fld;rn char []bitmap; rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_MSG_LEN+MAX_MSG_LEN)]rn byte []databuf; /* 多留一个域的长度,防止溢出 */rn short used;rn ;rnrnrn<em>如何</em>定义、使用 以上函数? ( PubStrToIso ) ?rn万分感谢!rnrnrnrn
dll 类库如何使用全局变量
业务场景: 1、记录日志的功能封装成 <em>dll</em>,<em>dll</em> 内部会格式化日志内容,并推送到 MQ; 2、各业务系统(几十个)在需要记录业务日志的地方,<em>调用</em> <em>dll</em> 里的一个方法,实现日志的异步记录; 在推送
C#中可以存在全局变量和全局函数吗?
可以在一个类中实现静态属性(字段)和静态方法,以此达到C或C++中<em>全局变量</em>和全局函数的效果。123456789101112131415public static class GlobalFunAndVar{    public static int Number{ get;set;}    public static float Values;         public static floa...
C#调用C++的DLL 所有数据类型转换方式
/C++中的DLL函数原型为   //extern "C" __declspec(<em>dll</em>export) bool 方法名一(const char* 变量名1, unsigned char* 变量名2) //extern "C" __declspec(<em>dll</em>export) bool 方法名二(const unsigned char* 变量名1, char* 变量名2)
C#调用DLL库的方法
net平台上,<em>调用</em><em>dll</em>文件有2种含义1、<em>调用</em>托管<em>dll</em>,即你使用。net平台开发的<em>dll</em>,属于托管代码2、<em>调用</em>非托管<em>dll</em>,即传统的<em>dll</em>,一般是C++,VB,DELPHI等等开发出来的,属于非托管代码。从你的意思中看出来你现在是<em>调用</em>托管的<em>dll</em>,方法是 “在解决方案管理器” - “解决方案”(或项目) 中的任意地方, 右键“添加引用”,“浏览”,选择你需要<em>调用</em>的<em>dll</em>文件...
怎样在一个c#项目中引用dll文件啊? 谢谢
怎样在一个<em>c#</em>项目中引用<em>dll</em>文件啊?谢谢
C语言如何调用DLL?
C里怎么<em>调用</em>C的DLL啊?
在Delphi中如何调用C语言的DLL?
在Delphi中<em>如何</em><em>调用</em>C<em>语言</em>的DLL?
在Delphi中如何调用C语言的Dll?
在Delphi中<em>如何</em><em>调用</em>C<em>语言</em>的Dll?
C语言调用DLL
使用c<em>语言</em><em>调用</em><em>dll</em> 博文地址http://blog.csdn.net/dengnanyi/article/details/8665379
C# 调用C语言DLL问题
我用C# <em>调用</em>C<em>语言</em>DLL问题rnrnC 给出的例子是:rnEXPORT long _stdcall addCon(int iType ,char *szPar,int iID);rnrn而我C#这么写的:rnpublic static extern long addCon(int iType, string szPar, int iID)rnrn<em>调用</em>出的问题:rn未能从程序集“Couns_Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中加载类型“Couns_Test.Form1”,因为方法“addCon”没有实现(没有 RVA)。rnrn请问各位,这个问题是怎么解决。rn
C#调用DLL
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Ru...
C#中如何加载dll调用其函数
C#编程中,<em>调用</em>封装<em>dll</em>中的函数是高频使用的。那么,<em>如何</em>在程序中加载<em>dll</em>并<em>调用</em>其中的函数呢?更进一步的,<em>如何</em>在主程序中对自己封装的<em>dll</em>中的函数进行调试呢?加载<em>dll</em>-添加引用
C++ 调用C#工程的 dll , 互相调用方法
很多时候在项目中需要通过C++<em>调用</em>C#的<em>dll</em>,或者反过来条用。 首先明白一个前提:C#是托管型代码。C++是非托管型代码。 托管型代码的对象在托管堆上分配内存,创建的对象由虚拟机托管。(C# )        非托管型代码对象有实际的内存地址,创建的对象必须自己来管理和释放。(C++) 两者详细区别阅读我的另一篇:托管代码和非托管代码的介绍,以及在这区别下的混合调试方法 1、C#调
C#中调用DLL
C#中<em>调用</em>DLL1.先把<em>调用</em>的DLL文件复制到执行文件的目录(调试时为DEBUG目录)2.在需<em>调用</em>DLL的*.CS文件中using System.Runtime.InteropServices;3.在类定义中用DllImport关键字进行声明函数接口public class FrmQuickSearch : System.Windows.Forms.Form {        [DllImpo
C# 调用外部dll
C# <em>调用</em>外部<em>dll</em> 一、      DLL与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现。 动态链接库是不能直接执行的,也不能接收消息,它只是一个
C#调用C语言dll问题
在C#里面<em>调用</em>一个用C<em>语言</em>写的<em>dll</em>,如果是用C去<em>调用</em>是这样的:rnchar str[256];rnstrcpy(str,"`hello!");rna = (long)str; rn在C#里面不能直接这么用,我把C代码封装成unsafe段,还是解决不了。rnunsafernrnchar str[256];rnstrcpy(str,"`hello!");rna = (long)str;rnrn不知道是用的不对还是这个方法压根行不通。请高手指点,在线等待。谢谢。rn
C#调用C语言DLL文件示范
C#<em>调用</em>C<em>语言</em>DLL文件示范 C#<em>调用</em>C<em>语言</em>DLL文件示范 C#<em>调用</em>C<em>语言</em>DLL文件示范
求助C语言的DLL在C#里面调用
经过了多方查找,我终于搞到了系统提示“尝试读取或写入受保护的内存。这通常指示其他内存已损坏 ”rn说明我传的参数不对,求达人帮我从C转化成C#的<em>调用</em>语句,下面贴出rnunsigned WINAPI TACkey_Command(int iHandle,int iCommLen,unsigned char* ucComm,int* iRespLen,unsigned char* ucResp)rn这是给我的C中<em>调用</em>的语句,下面是我自己写的rniRet = TACkey_Command(out iHandle, out iCommLen, Comm, ref iRespLen, Resp);rn其中,comm和Resp我用的是StringBuilder,但是仍然报错,求指点
c#调用C语言写的DLL
请问大家rn利用 C#<em>调用</em>C#<em>语言</em>写的DLLrn<em>如何</em>处理设计到结构指针的问题rn网上一直找不到比较完整的教程rn大家推荐下哈
关于C# 调用C语言 DLL 的问题 !
我现在有一个DLL需要我用C#将其引用。 函数原型是是这样的!rnrnvoid __stdcall QSCalc1(double f1,double f2,double f4,rnint m,rndouble *F, double *tg, double *th,rndouble *tg0, double *th0,rndouble *tn0, double tw0, double Fz,rndouble Qz,rndouble *q,double *s);rnrnrn我现在写了一个方法。 <em>调用</em>的时候没有问题,但是在返回的时候 总是报错! rn引发类型为“System.ExecutionEngineException”的异常。rnrnQSCalc1(f1,f2,f4,m,ref F,ref tg, ref th,ref tg0,ref th0,ref tn0,Convert.ToDouble(tw0),Fz,Qz,ref q,ref s);rnrn编译正常通过,但是在进行<em>调用</em>该函数的时候就报上面的错误。 不知道是哪出了问题, 还有,上面引用的方法中, ref q 和ref s 是DLL返回的两个数组。 我想把这两个数组中的数据读出来,应该怎么办呢? (无法更改DLL文件)
【C#】调用DLL文件
实际使用C#的过程中,并不一定所有的函数都需要自己写,可以直接使用已经存在的功能,这些功能一般封装在DLL文件中。 C#中的DLL文件又分为托管DLL和非托管DLL。 托管DLL文件是在 .NET 环境下生成的<em>dll</em>文件,在公共<em>语言</em>运行库(Common Language Runtime,简称CLR)中能够直接引用的。比如封装各种命名空间的DLL文件,包括System.<em>dll</em>。 非托管DLL文...
40、C#:如何调用外部dll的接口
.如果要用别人<em>dll</em>中的接口,以此来<em>调用</em>别人的服务(别人的服务必须是开启的,而且要能通过expo服务<em>调用</em>到),应该<em>如何</em>做? 1.首先将别人的<em>dll</em>引用到自己的项目中来(添加引用即可) 2.然后将别人的接口添加到项目的apidefine.xml中去,例如:ExpoBuildApiDefine.BuildApiDefineFile(new List(){  typeof(IConfigManage
CSharp调用C++编写的DLL的方法
有的时候想写点东西,但由于文笔不行、技术不行也就没有怎么写。经常是用到什么、学习什么的时候,简单写点,权当是个学习笔记。上博客的次数也很少,有人给我留言也是没有怎么及时的回复,深感抱歉! 在一些特殊的行业,比如我从事的GIS、地质行业,大部分软件还是以C/S形式存在,软件大多是产品来销售。这些程序大部分是Cpp<em>语言</em>来编写,一方面是考虑到效率问题,另一方面可能是因为历史原因,创建者使用Cpp,后面
C#调用C++的dll方法
C#<em>调用</em>C++的<em>dll</em>总归可以有两种方法: 1、非托管C++创建的<em>dll</em>库,需要用静态方法<em>调用</em>; 2、直接使用CLR,生成托管C++<em>dll</em>库。 很多时候在项目中需要通过C++<em>调用</em>C#的<em>dll</em>,或者反过来条用。首先明白一个前提:C#是托管型代码。C++是非托管型代码。 托管型代码的对象在托管堆上分配内存,创建的对象由虚拟机托管。(C# ) 非托管型代码对象有实际的内存地址,创建的对象必须自...
vs2010中c#中类库dll制作和引用方法
vs2010中<em>c#</em>类库<em>dll</em>制件 1、建立类库文件   2、写好类:注意类的级别对外要公共的属性public  注意需要设置这类为public不然默认的是private.这样的话,即使以后引用了DLL,也没法使用类。         若不想自己写的类被重写,可以限制类的修饰为public sealed
c#调用C的DLL
<em>c#</em><em>调用</em>C的DLL
c#调用c的dll
小弟目前遇到一个问题,本人的程序是<em>c#</em>开发的,需要<em>调用</em>别人使用c开发的<em>dll</em>,而这<em>dll</em>里面存在一些汇编代码,在我的程序<em>调用</em>到存在汇编操作的<em>dll</em>函数时,程序报错,“内存不能读取或写入,可能是内存以损坏”。rn请各位高手指点一下,<em>如何</em>解决。
c# 调用 c dll
我在<em>c#</em>中<em>调用</em> c 写的<em>dll</em>动态链接库,弄了好久,总是报“尝试读入或写入受保护的内存”这样的错误,估计是参数类型对应出错了。大家帮忙看下,下面这个动态库中的c<em>语言</em>函数转换成<em>c#</em>的函数,参数该是怎么样的呢?谢谢rnlong WINAPI OpenComPort(long Port, unsigned char *ComAdr, unsigned char * Baud,long *FrmHandle);
C# 中如何调用DLL
为了能用上原来的C++代码,只好研究下从C# 中<em>调用</em>DLLrn首先必须要有一个声明,使用的是DllImport关键字: rn包含DllImport所在的名字空间 rnrnusing System.Runtime.InteropServices; rnpublic class XXXXrnrn[DllImport(“MyDLL.<em>dll</em>")] rnpublic static extern int mySum (int a,int b); rn rnrnrn[DllImport(“MyDLL.<em>dll</em>")] rnpublic static extern int mySum (int a,int b); rn代码中DllImport关键字作用是告诉编译器入口点在哪里,并将打包函数捆绑在这个类中 rn在<em>调用</em>的时候 rn在类中的时候 直接  mySum(a,b);就可以了 rn在其他类中<em>调用</em>: XXXX. mySum(a,b); rn rn[DllImport(“MyDLL.<em>dll</em>”)]在申明的时候还可以添加几个属性 rn[DllImport(“MyDLL.<em>dll</em>", EntryPoint=" mySum ",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall) rn] rnEntryPoint: 指定要<em>调用</em>的 DLL 入口点。默认入口点名称是托管方法的名称 。 rnCharSet: 控制名称重整和封送 String 参数的方式 (默认是UNICODE) rnCallingConvention指示入口点的函数<em>调用</em>约定(默认WINAPI)(上次报告讲过的) rnSetLastError 指示被<em>调用</em>方在从属性化方法返回之前是否<em>调用</em> SetLastError Win32 API 函数 (C#中默认false ) rnrnrnint 类型 rn[DllImport(“MyDLL.<em>dll</em>")] rn//返回个int 类型 rnpublic static extern int mySum (int a1,int b1); rn//DLL中申明 rnextern “C” __declspec(<em>dll</em>export) int WINAPI mySum(int a2,int b2) rn rn//a2 b2不能改变a1 b1rn//a2=..rn//b2=...rn return a+b; rn rnrnrn//参数传递int 类型 rnpublic static extern int mySum (ref int a1,ref int b1); rn//DLL中申明 rnextern “C” __declspec(<em>dll</em>export) int WINAPI mySum(int *a2,int *b2) rn rn//可以改变 a1, b1rn*a2=...rn*b2=...rn return a+b; rn rnrnrnDLL 需传入char *类型 rn[DllImport(“MyDLL.<em>dll</em>")] rn//传入值 rnpublic static extern int mySum (string astr1,string bstr1); rn//DLL中申明 rnextern “C” __declspec(<em>dll</em>export) int WINAPI mySum(char * astr2,char * bstr2) rn rn//改变astr2 bstr 2 ,astr1 bstr1不会被改变rn return a+b; rn rnrnrnDLL 需传出char *类型 rn[DllImport(“MyDLL.<em>dll</em>")] rn// 传出值rnpublic static extern int mySum (StringBuilder abuf, StringBuilder bbuf ); rn//DLL中申明 rnextern “C” __declspec(<em>dll</em>export) int WINAPI mySum(char * astr,char * bstr) rn rn//传出char * 改变astr bstr abuf, bbuf可以被改变rn return a+b; rn rn rnDLL 回调函数 rnrnBOOL EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam) rnrnhttp://blog.vckbase.com/images/vckbase_com/teky/blog3.JPGrnrnusing System; rnusing System.Runtime.InteropServices; rnpublic delegate bool CallBack(int hwnd, int lParam); //定义委托函数类型 rnpublic class EnumReportApp rn rn[DllImport("user32")] rnpublic static extern int EnumWindows(CallBack x, int y); rnpublic static void Main() rnCallBack myCallBack = new CallBack(EnumReportApp.Report); EnumWindows(myCallBack, 0); rn rnpublic static bool Report(int hwnd, int lParam) rn rnConsole.Write("Window handle is "); rnConsole.WriteLine(hwnd); return true; rn rn rn rnrnDLL 传递结构 rnBOOL PtInRect(const RECT *lprc, POINT pt); rnrnusing System.Runtime.InteropServices; rn[StructLayout(LayoutKind.Sequential)] rnpublic struct Point rn public int x; rnpublic int y;rn rn[StructLayout(LayoutKind.Explicit)] rn public struct Rect rn rn[FieldOffset(0)] public int left; rn[FieldOffset(4)] public int top;rn[FieldOffset(8)] public int right; rn[FieldOffset(12)] public int bottom;rn rnClass XXXX rn [DllImport("User32.<em>dll</em>")] rnpublic static extern bool PtInRect(ref Rect r, Point p); rn rnrnrn能用上DLL以后感觉还是很好的,原来的C++代码只要修改编译通过就可以了,rn高兴没多久,发现.net2005居然可以用VB,VC开发智能设备项目,可以创建MFC智能设备项目,难道可以直接用MFC来开发smartphone的程序了,请各位专来讨论讨论,发表您的经验和看法!rnrnrn转http://blog.vckbase.com/teky/archive/2006/04/14/19496.aspx
C#调用dll的简单demo(托管)
1.新建一个类型为类库的工程,默认的工程名为ClassLibrary1,我这里就不改了 2.添加函数:   public static void Hello()   {             Console.WriteLine("Hello World!");    } 3.如图: 4.选择菜单栏生成->生成ClassLibrary1,然后在bin目录下的debug目录
C#调用动态链接库DLL
1.概述动态链接库(Dynamic Linked Library):将写好的函数存在库中,以供其他程序开发<em>调用</em>,<em>调用</em>方式为“动态的”。 Windows为应用程序提供了丰富的函数<em>调用</em>,这些函数<em>调用</em>都包含在动态链接库中。其中有3个最重要的DLL,Kernel32.<em>dll</em>,它包含用于管理内存、进程和线程的各个函数; User32.<em>dll</em>,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数
C# 怎么调用多个dll 有两个是依赖!
-
C#怎么调用dll接口
第一步,在项目右侧解决方案资源管理器中,添加引用浏览选中自己要引用的<em>dll</em> 第二步,在项目里写下 using  theNameOfDLL ; 第三步,直接在程序中初始化你所需要的类,通过这个类<em>调用</em>其中的方法。 例如:我们要<em>调用</em>a.<em>dll</em> 中b类的c方法 则: using a; b m=new b(); b.c();
C#中如何调用动态链接库DLL
每种编程<em>语言</em><em>调用</em>DLL的方法都不尽相同,在此只对用C#<em>调用</em>DLL的方法进行介绍。首先,您需要了解什么是托管,什么是非托管。一般可以认为:非托管代码主要是基于win 32平台开发的DLL,activeX的组件,托管代码是基于.net平台开发的。如果您想深入了解托管与非托管的关系与区别,及它们的运行机制,请您自行查找资料,本文件在此不作讨论。 (一)     <em>调用</em>DLL中的非托管函数一般方法
c#如何调用dll
想使用windows下的一个<em>dll</em>,该<em>如何</em>操作?
dll调用全局变量 出错
我用的是 vs2005rnrn<em>dll</em>test工程:rnrnlib.hrnrn#ifndef LIB_Hrn#define LIB_Hrnextern int <em>dll</em>GlobalVar;rnextern "C" int GetGlobalVar();rn#endif rnrnlib.cpprnrn#include "lib.h"rn#include rnrnint <em>dll</em>GlobalVar;rnrnBOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)rnrn switch(ul_reason_for_call)rn rn case DLL_PROCESS_ATTACH:rn <em>dll</em>GlobalVar=100;rn break;rn case DLL_THREAD_DETACH:rn case DLL_THREAD_ATTACH:rn case DLL_PROCESS_DETACH:rn break;rn rn rn rn rn return TRUE;rnrnrnrnint GetGlobalVar()rnrn return <em>dll</em>GlobalVar;rnrnrnrnlib.defrnLIBRARY "Dlltest"rnrnEXPORTSrn ;或<em>dll</em>GlobalVar CONSTANT rn <em>dll</em>GlobalVar DATArn GetGlobalVarrnrnCallDll工程:rn#include rn#include rn#pragma comment(lib,"<em>dll</em>Test.lib")rnextern "C" _declspec(<em>dll</em>import)int GetGlobalVar();rnextern int <em>dll</em>GlobalVar;rnrnint main(int argc, char* argv[])rnrn printf("%d ",GetGlobalVar());rnrn *(int *)<em>dll</em>GlobalVar = 1;rn //特别要注意的是这种方法导出的并不是变量本身,而是DLL中导出变量的指针,应用程序必rn //须通过强制指针转换来使用 rn rn printf("%d ",GetGlobalVar());rnrn scanf("rr");rn return 0;rnrnrnrn出错:rnrn错误 1 error LNK2001: 无法解析的外部符号 "int <em>dll</em>GlobalVar" (?<em>dll</em>GlobalVar@@3HA) <em>dll</em>call.obj rn错误 2 fatal error LNK1120: 1 个无法解析的外部命令 E:\Ebook\学习笔记\C++APIWIN32MFC\029_DLL动态链接库导出<em>全局变量</em>\Debug\DllCall.exe 1 rnrnrn
c语言全局变量如何使用
我想全部函数都能用<em>全局变量</em>,应该怎么定义使用呢?
C如何调用CPP中的全局变量?
//global.h rn#include rn#include rnrn//定义全局数组rnextern unsigned char arrData[];rnrn//global.cpprnunsigned char arrData[1024];rnrn//convert.hrn//定义全局函数rnextern "C" void Test();rnrn//convert.cpprn#include "global.h"rnrnvoid Test()rnrnmemset(arrData, 0 , 1024);rnmemcpy(arrData, "test", 4);rnprintf("arrData = %s", arrData);rnrnrn//测试<em>调用</em><em>全局变量</em>和数组rn//test.crn//#include "convert.h" //引用该头文件,编译出错rnrnextern void Test(); //全局函数rnextern unsigned char arrData[]; //全局数组rnrnint main()rnrn Test(); //全局函数,结果输出正常!rnrn //这里编译出错误,提示arrData不识别 !!!!!!rn printf("arrData = %s", arrData); //全局数组rnrn return 0;rn
如何访问Dll中的全局变量,并改变Dll中全局变量
<em>如何</em>访问Dll中的<em>全局变量</em>,并改变Dll中<em>全局变量</em>!rn总之要做到很方便的处理!!
C#项目添加dll引用
部署<em>dll</em>流程:首先把<em>dll</em>文件放到应用程序…\bin\Debug\下;然后在解决方案中添加引用:右键鼠标–>添加引用–>浏览–>选择<em>dll</em>放置路径后点击“确定”。 最后在项目源代码头文件加入对应的引用。
C++如何调用C#的DLL方法
0,概述 查了网上的资料,目前知道两种情况,一种是用C++/CLI(通用<em>语言</em>接口),另一种则是使用COM组建。 1,C++/CLI(通用<em>语言</em>接口) 下面代码参照:http://blog.csdn.net/qingzai_/article/details/53391662 1.1,C#代码 using System; using System.Collections.Generic
c#调用dll
<em>c#</em><em>调用</em><em>dll</em>
c#调用c++dll接口及回调函数
在合作开发时,C#时常需要<em>调用</em>C++DLL,当传递参数时时常遇到问题,尤其是传递和返回字符串是,现总结一下,分享给大家: VC++中主要字符串类型为:LPSTR,LPCSTR, LPCTSTR, string, CString, LPCWSTR, LPWSTR等 但转为C#类型却不完全相同。 类型对照: BSTR ---------  StringBuilder LPCTSTR
C#动态调用DLL中的函数
一般使用方法 [System.Runtime.InteropServices.DllImport("E:\\Project\\DLL\\XXX.<em>dll</em>", EntryPoint = "OpenComm", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] public static extern int
C语言创建DLL,并在C中调用DLL
C<em>语言</em>创建DLL,并在C中<em>调用</em>DLL的例子,步骤详细,入门的好教程。
c语言如何调用托管类dll
DLL 分为托管和非托管两种,DLL 引用也分为静态引用和动态引用两种。 托管DLL:表示利用.NET Framework 编译产生的类型库程序集。rnrn我现在遇到了问题,用labwindows cvi<em>调用</em>别人的<em>dll</em>,这个<em>dll</em>不是普通的<em>dll</em>,而是基于com类的<em>dll</em>,就是所谓的托管类的<em>dll</em>。类似activex,就是需要注册才能使用的,在注册表里有唯一的clsid,他用C#写的,好像C#没法写非托管类的<em>dll</em>,他说没办法。rnrncvi是标准c<em>语言</em>,不是c++,哪位用过这种<em>调用</em>?
VB如何调用C语言写的dll
我有个<em>dll</em>rn用c<em>语言</em>开发,<em>如何</em>使用VB来<em>调用</em>这个<em>dll</em>rnZM_Recognize_ByFileArnZM_Recognize_ByFileWrnZM_Recognize_ByBufferArnZM_Recognize_ByBufferWrnZM_Recognize_ByScreenArnZM_Recognize_ByScreenWrnZM_ReportErrorArnZM_ReportErrorWrnZM_QueryBalanceArnZM_QueryBalanceWrnDllCanUnloadNowrnDllGetClassObjectrnDllRegisterServerrnDllUnregisterServerrnrnrn这个是在Depends里面看到的函数,请教高手!
这个c语言dll如何调用
//读取数据 test.<em>dll</em>rnint test(char *buf)rn数据结构如下rn char c1;rn char c2[100];rnrnrn这个<em>dll</em><em>如何</em><em>调用</em>啊。<em>如何</em>声明啊rn用了几个方法,要不有的时候一下就退出,要么Dispose的时候提示错误。
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#引用DLL的位置
原文地址:  http://www.cnblogs.com/marvin/p/PutDllToSpecificFolder.html?utm_source=tuicool&utm_medium=referral 想必C#的开发者都遇到过这个问题,引用的<em>dll</em>都放在根目录下,随着项目的日益增大,根目录下充满了各种各样的<em>dll</em>,非常的不美观。 如果能够把<em>dll</em>按照想要的目录来存放,
C#里面使用DLL方法
在.net平台上,<em>调用</em><em>dll</em>文件分为2种1、<em>调用</em>托管<em>dll</em>,即你使用.net平台开发的<em>dll</em>,属于托管代码2、<em>调用</em>非托管<em>dll</em>,即传统的<em>dll</em>,一般是C++,VB,DELPHI等等开发出来的,属于非托管代码。       <em>调用</em>托管的<em>dll</em>,方法是“在解决方案管理器”-“解决方案”(或项目)中的任意地方,右键“添加引用”,“浏览”,选择你需要<em>调用</em>的<em>dll</em>文件,确定即可,该<em>dll</em>会自动复制到bin目录...
C#直接使用DllImport外部Dll的方法
C#.Net<em>调用</em>基本格式: [DLLImport(“DLL文件路径”)] 修饰符 extern 返回值类型 方法名称(参数列表) 如: [DllImport("kernel32.<em>dll</em>", SetLastError = true, EntryPoint = "SetLocalTime")] public static extern int SetSystemTime(ref SystemTi
C#如何引用定义好的dll文件
1 添加引用,找到<em>dll</em>文件  2 引用类的名称空间,生成类的实例,<em>调用</em>类的方法,测试OK。
在C#里如何调用标准DLL函数
在C#里只需要<em>调用</em>PInvoke (Platform Invocation) 服务。C# 支持一种sysimport属性支持这种<em>调用</em>。下面是完整的语法形式(在例子里没有用到所有的参数):[sysimport(<em>dll</em>=<em>dll</em>Name,name=functionName,charset=characterSetToBeUsed)]给出一个<em>调用</em>Win32 MessageBox函数的例子:using Sy
c#调用c语言Dll的带指针参数的函数,如何转换?
手头只有一个DLL文件和一个函数说明rn里面是c<em>语言</em>的方法,有的方法还带指针rnrn现要改成<em>c#</em><em>调用</em><em>dll</em>,经过测试,参数是int的,可以直接<em>调用</em>,没有任何问题,但含有char指针的参数<em>如何</em>转换成<em>c#</em>能<em>调用</em>的方法,一直没有头绪。rnrn疑问:1、如下所示char *pFileData1是要加载的波形文件,通过网上查询,说改成ref string pFileData1 就可以了,我把文件的路径赋值给参数pFileData1,测试是通不过的,哪儿出的问题?rn 2、最复杂的是下面第三个 计算的函数,那些参数都是怎么转换的?我转换的也在下面,不知道是不是这样,因为参数值来源不明确也没法测试。rnrnrn//像这样的函数<em>调用</em>时没问题的rnUsbApi_API int __stdcall Save_WaveInit( int IDN);rn//功能:固化波形初始化,在固化波形前必须<em>调用</em>,固定<em>调用</em>。rn//参数:IDN:必须为1到9rn//返回值:1,初始化成功;-1,初始化失败rn// 例程:rn/* int IDN=m_combox_deviceID.GetCurSel();rn Save_WaveInit(IDN); rn*/rnrn//这个就不知道怎么转了rnUsbApi_API int __stdcall Load_WaveFile(int IDN, char *pFileData1, char* pFileData2);rn//功能:动态加载波形。rn//加载的波形文件必须为此动态库中的calculate函数生成的波形文件,否则会提示文件格式不正确(文件版本不对)。rn//参数:IDN:必须为1到9; pFileData1:要加载的波形文件1; pFileData2:要加载的波形文件2rn//返回值:1,加载成功;-1,加载失败rn// 例程:rn/* if( Load_WaveFile(IDN,(char*)pFileBuf1,(char*)pFileBuf2)== -1 ) // 文件加载rn rn AfxMessageBox("激励源错误、不存在或连接不好,下载波形失败!"); //---DLL内提示rn if(pFileBuf1)rn ::GlobalFree(pFileBuf1); rnrn if(pFileBuf2)rn ::GlobalFree(pFileBuf2);rn rn return;rn rn*/rnrnrn//波形计算的函数rnUsbApi_API int __stdcall calculate(int IDN, char ModUseCnt[10], char ModNum[10][10],rn float *pBuff_ID1, float *pBuff_ID2, float *pBuff_ID3, float *pBuff_ID4, rn float *pBuff_ID5, float *pBuff_ID6, float *pBuff_ID7, float *pBuff_ID8, rn float *pBuff_ID9, float *pBuff_ID10, double *pWaveDat, int *pWaveLen);rnrn//功能:计算波形文件。能根据不同的设备生成不同的波形文件rn//参数:rn//返回值:1,计算成功;-1,计算失败rnrnrn我转换的calculate <em>c#</em>可以<em>调用</em>的函数,不知道这样行不行,还请各位老师帮忙看一下。rn rn public char[] ModUseCnt = new char[10];rn public char[][] ModNum = new char[10][];rnrn [DllImport("SD530XApi.<em>dll</em>")]rn public static extern int calculate(int IDN, char[] ModUseCnt, char[][] ModNum,rn ref float pBuff_ID1, ref float pBuff_ID2, ref float pBuff_ID3, ref float pBuff_ID4,rn ref float pBuff_ID5, ref float pBuff_ID6, ref float pBuff_ID7, ref float pBuff_ID8,rn ref float pBuff_ID9, ref float pBuff_ID10, ref double pWaveDat, ref int pWaveLen);rnrn给点参考意见我也谢天谢地了!rnrn
C#类中全局变量调用
class testrn rn public string str;rn rn在同一命名空间下<em>如何</em><em>调用</em>
C语言Dll编写与调用
C<em>语言</em>Dll编写与<em>调用</em>,内含源代码与操作步骤
在C#程序中调用C语言dll的问题
在vc.net下编写了一个简单的<em>dll</em>如下:rn#include rn#include rn __declspec ( <em>dll</em>export ) long __stdcall f(long i) rn return i;rnrn生成相应的lib和<em>dll</em>文件。rn在<em>c#</em>.net下编写了一个简单的<em>调用</em>上述<em>dll</em>的程序如下:rnusing System;rnusing System.Runtime.InteropServices;rnpublic unsafe class demo rnrn [DllImport("DeviceControl.<em>dll</em>", CharSet=CharSet.Auto)]rn public static extern long f(long i);rnrnnamespace ConsoleApplication1rnrn unsafe class Class1rn rn [STAThread]rn static void Main(string[] args)rn rn demo.f(3);rn rn rnrn运行时显示错误如下:rn未处理的“System.DllNotFoundException”类型的异常出现在 ConsoleApplication1.exe 中rn其他信息:无法加载 DLL (DeviceControl.<em>dll</em>)。rnrn把上述[DllImport("DeviceControl.<em>dll</em>", CharSet=CharSet.Auto)]rn改为[DllImport("DeviceControl.lib", CharSet=CharSet.Auto)],错误仍然存在。rn请问:我的这种<em>调用</em>方法错在哪里?
在DLL中如何访问全局变量
在DLL中<em>如何</em>访问<em>全局变量</em>?rn在DLL中为什么不能运行时创建组件?在DLL中rnMyPanel := TPanel.create(aowner);rn为什么总是报错呢?
C# DllImport的用法
C# DllImport的用法 大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的Dl
C#调用外部DLL
http://space.itpub.net/12639172/viewspace-589267   每种编程<em>语言</em><em>调用</em>DLL的方法都不尽相同,在此只对用C#<em>调用</em>DLL的方法进行介绍。首先,您需要了解什么是托管,什么是非托管。一般可以认为:非托管代码主要是基于win 32平台开发的DLL,activeX的组件,托管代码是基于.net平台开发的。如果您想深入了解托管与非托管的关系与区别,及它们的运
c#封装自己写的dll,和引用自己的dll
1.怎么封装自己的<em>dll</em>; a.打开visual studio - 文件 - 新建 - 项目- 类库 - 名称MyTestDll; b.右键Class1.cs - 修改为 TestDll.cs; c.在里面写一个自己想操作的函数,如:  public int fnAdd(int iAdd1, int iAdd2)       {             return (iAdd1 +
Csharp调用c++的DLL类库
共含有2个项目,一个是c++写的DLL类库,另一个是C#<em>调用</em>第一个项目生成的DLL类库。 另外可以参考: http://blog.csdn.net/jshayzf/article/details/23
dll如何释放全局变量
[code=Delphi(Pascal)]rnrnlibrary SMS;rnrnusesrn Classes,rn SysUtils,rn SOAPHTTPClient,rn MonitorWebServices1 in 'MonitorWebServices1.pas',rn uWebServices in 'uWebServices.pas';rnrn$R *.resrnrnvarrn rioList: TList;rnrnbeginrn rioList := TList.Create;rnend.rnrn[/code]rnrn因主调程序需要,创建了一个常驻的TList,如上,这个TList该怎么释放?在哪里释放?rn
c#如何调用c/c++的dll
[color=#FF0000]我已经知道<em>调用</em>的语法,但我想知道以下两点:[/color]rn1:这些非托管DLL是不是要实现什么接口,或者遵循某些协议,才能被C#<em>调用</em>?rn2:是否能<em>调用</em>C<em>语言</em>写的DLL?或者说是否只能<em>调用</em>C++写的,不能<em>调用</em>C写的?
用C#如何调用C 写的DLL
C 编写的seccli.<em>dll</em>函数如下:rnint SEC_CliSign(char XmlInfo[3800], strlen(XmlInfo), out unsigned char UpSign [180], out nSigLen)rnrnstrlen(XmlInfo)表示XmlInfo长度rnnSigLen 表示UpSign长度.rnrn<em>如何</em>申明、<em>调用</em>!!!!
C#如何调用F#的dll?......................................................C#如何调用F#的dll
[size=24px]C#<em>如何</em><em>调用</em>F#的<em>dll</em>?[/size]
C#中调用C生成的Dll 问题
C#中<em>调用</em>C生成的Dll,总报程序发生异常错误..不懂为什么..rnC的代码:rnint Sum(int a,int b)rnrn return a+b;rnrnC#中<em>调用</em>的代码:rn class Dllrn rn [DllImport("EssDll.<em>dll</em>",EntryPoint="Sum",rn CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]rn public static extern int Sum(int a,int b);rnrn /// rn /// 应用程序的主入口点。rn /// rn [STAThread]rn static void Main(string[] args)rn rn Console.Write("Dll测试开始\n");rn Console.Write(Sum(5,6).ToString());rn Console.Write("\n前面<em>调用</em>Dll完成!\n");rn string ok = Console.ReadLine();rn rn rnrnC生成Dll是用Cywin来生成的,命令如下:rnEssDll:rn gcc -g -c ./src/EssDll.c -I./include -L./librn <em>dll</em>wrap -o EssDll.<em>dll</em> EssDll.o --def ./src/EssDll.defrn mv ./EssDll.o ./obj/rn mv ./EssDll.<em>dll</em> ./bin/rnrn*.def文件如下:rnLIBRARY EssDllrnEXPORTS rn Sum
c#调用外部dll
一、      DLL与应用程序动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现。 动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程
如何利用C#创建和调用DLL
一、写在前面 C# <em>语言</em>是一种简单但功能强大的编程<em>语言</em>,用于编写企业应用程序。 C# <em>语言</em>从C和 C++<em>语言</em>演化而来,在语句、表达式和运算符方面使用了许多 C++ 功能。 C# <em>语言</em>在类型安全性、版本转换、事件和垃圾回收等方面进行了相当大的改进和创新。 C# <em>语言</em>提供对常用 API 样式(如 .NET 框架、COM、自动化和 C 样式 API 等)的访问。 什么是动态链接库?DLL三个字母对于你来
C#从零开始——生成dll文件并调用
学过c的课程,了解一点语法,从现在开始学习C#并记录下来。用来生成<em>dll</em>文件: 在控制台用命令行生成<em>dll</em>文件: <em>调用</em><em>dll</em>文件: 来张全家福: 最后的运行结果就不来了,黑框框 ‘15’。。
c中能否调用c#写的dll?
如题
C#中调用c生成dll问题
如有xx.<em>dll</em>,rn在c代码中,rn函数为:rninter* add (inter * a , inter *b);rn其中inter为结构体。rn用<em>c#</em><em>调用</em>rnclase interrn[StructLayout(LayoutKind.Sequential)]rnrn...rnrn[DllImport("xx.<em>dll</em>")]rnrn public extern static (返回值) add ((返回值), (返回值));rnrn该函数返回值应该怎么写,参数应该怎么写。因为c代码中定义的该函数返回值和参数都是指针。rn
c#调用c中的dll函数
在c、c++中有typedef定义。当要把c/c++中的程序移植到<em>c#</em>或<em>调用</em>c中的<em>dll</em>函数时,涉及到一些数据结构的重新定义。为了方便,可使用<em>c#</em>中的using 别名;对于指针,需加unsafe 如: using boolean_T = System.Byte; unsafe public struct emxArray_real_T { double* data; int* size; int ...
C# 中调用dll
起因是因为相机有个手眼标定程序是用C#写的,中间留出来了机器人通信的地方,但是我们的机器人只提供了<em>dll</em>来控制。因此要结合起来的话,想试试通过C#来<em>调用</em><em>dll</em>。 一. C# 中静态<em>调用</em>C++动态链接     1. 建立VC工程CppDemo,建立的时候选择Win32 Console(<em>dll</em>),选择Dll。     2. 在CppDemo.cpp文件中添加这些代码。 extern
c#调用dll
<em>c#</em>中<em>调用</em><em>dll</em>
C#中调用dll
我要加载x.<em>dll</em>文件rnx.<em>dll</em>文件有几个类及方法rn但我这么写还是报错,为什么?rn public class Login: System.Web.UI.Pagern rn [System.Runtime.InteropServices.DllImport("CCA.<em>dll</em>")]rn public static extern Boolean AlternateCall();rn private void Page_Load(object sender, System.EventArgs e)rn rn// // 在此处放置用户代码以初始化页面rn Boolean x;rn x = AlternateCall();rn if(x==true)rn Response.Write("sss");rn elsern Response.Write("as");rnrnrnrn在x = AlternateCall();报错rn请教怎么<em>调用</em>?rn
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><em>调用</em>,谢谢!
C#调用C编写dll
[DllImport("P230_DLL_VC.DLL")]rnpublic static unsafe extern int RpcClose();rnrn<em>调用</em> int a=RpcClose();rn出错:无法在 DLL P230_DLL_VC.DLL 中找到名为 RpcClose 的入口点。rn请教一下<em>如何</em>解决。rn谢谢!
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>语言</em>生成的<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#中如何调用dll中的窗口?
最好能给一个完整的例程看看,先谢谢了!
求救: 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>中应<em>如何</em>定义入口参数?rnpublic static extern int rf_anticoll(int dev, byte bcnt, out string pSnr, out int len)rn这个不行。报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
C#调用C代码DLL
首先我们新建一个C<em>语言</em>的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提示“指针和和固定大小缓冲区只能在不安全的上下文中使用”,我这样写对吗,要怎么改,之后要<em>如何</em>用这个函数,帮忙写写吧,多谢了
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抛出“尝试读取或写入受保护的内存 这通常指示其它内存已损坏”的异常,请问大师们这为毛???
生成条形码下载
生成条形码.类似超市的,条形码。输入数据可以生成条形码。 相关下载链接:[url=//download.csdn.net/download/wh1090220084/4248639?utm_source=bbsseo]//download.csdn.net/download/wh1090220084/4248639?utm_source=bbsseo[/url]
题记:为了把闲置的移动硬盘或者U盘充分利用起来。下载
操作系统装U盘题记:为了把闲置的移动硬盘或者U盘充分利用起来。本人做了一次尝试把ubuntu14.04 和win8.1专业版 装在移动硬盘和U盘运行。制作成可以随身携带的移动硬盘或U盘系统。 相关下载链接:[url=//download.csdn.net/download/xcs1286869945/7845755?utm_source=bbsseo]//download.csdn.net/download/xcs1286869945/7845755?utm_source=bbsseo[/url]
android展示word2007,excel下载
提供jar包直接解析office2007的文件 包括word excel都行,文字图片表哥,都正常显示,提供api 搜索 放大 缩小 简单粗暴 相关下载链接:[url=//download.csdn.net/download/daniel0225/8212757?utm_source=bbsseo]//download.csdn.net/download/daniel0225/8212757?utm_source=bbsseo[/url]
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件
我们是很有底线的