vb6.0调用cdll文件总结
VB6.0调用C# Dll文件总结
VB6.0调用C# Dll文件总结在工作中遇到了在VB6.0的程序里要调用C#的Dll的问题,显然这两个开发环境属于不同的平台。在网上拜读了几位大师的文章后,在实际试验中还是会发生这样那样的问题,最后还是实现了预期效果,在此我把我的实验步骤和注意事项分享如下,希望对需要之人有所帮助:
实验环境:
C#dll的创建使用的是VS2008;VB6.0
一、C#部分
1.用C#创建一个ClassLibrary项目(VS2008);
2.所有在VB6中要使用的方法都必须通过继承接口实现,并且为public的(非常重要,没有继承接口实现的方法,在VB6.0里面无法调用);
3.接口和类都需要加入属性Guid;
Guid通过VS2008自带的工具得到:
4.在VS2008的DOS命令工具提示框中运行:
sn -k C:\myKey.snk<回车>
在C盘根目录下生成一个强名称文件:myKey.snk(注意这
个强名称文件的名字可以自己定义,我暂定为myKey.snk)5. 右击项目,选择属性,打开并编辑项目的属性对话框
在Application tab中,点击Assembly Information按钮,在打开的对话框中选中“make Assembly COM-Visible”(重要)
在Build Tab中,最好用Release模式编译,确认选中“Make assembly COM-Visible”(重要)。
在Signing Tab中引入上一步创建的强名称文件myKey.snk
6. 检查项目的AssemblyInfo文件,ComVisible应设为true,项目和文件版本不为1.0.*,应该是一个具体的值;
7.编译这个项目,生成dll文件。
到此为止,C#的Dll部分已经准备完毕了。
二、VB6部分
1. VB6调用环境必须安装.Net framework
2.0或以上版本,最好是
3.5(和VS2008相同的framework);
2. 复制dll文件进入VB6环境的目标文件夹,例如D:根目录,D:\TestCom.dll
3. 在Dos命令窗口用regasm命令注册这个dll文件生成.tlb 文件
regasm D:\TestCom.dll /tlb:D:\TestCom.tlb /codebase
在D:\将会生成一个TestCom.tlb文件
4.在Dos命令窗口用gacutil命令添加Dll文件到GAC中(全局程序集缓存),这样这个Dll文件在这个PC中就可以随处使用
gacutil /I D:\TestCom.dll
5.在VB6项目中,把生成的.tlb文件加入到项目(References)
6. VB6代码即可调用tlb文件
Private Sub Command1_Click()
Dim obj As New t0426a.Class1
https://www.360docs.net/doc/ca618233.html,bel1.Caption = obj.GetString()
End Sub
注意:以上3,4步,需要在VB6环境的
C:\WINDOWS\system32下面有相应的exe文件才可运行;第4步,可以省去;
还要说明的是,当转移这个VB6生成的exe程序(这个VB6可执行文件引用了C#的dll)到另外一台电脑上的时候,需要把这个C# Dll文件一同Copy到那台电脑上,并且重新执行第3步的注册生成tlb文件的工作,否则这个exe程序无
法运行。
参考文献:
https://www.360docs.net/doc/ca618233.html,/martin1009/archive/2012/02/09/2
344254.html
https://www.360docs.net/doc/ca618233.html,/smallboy_5/article/details/3007553 https://www.360docs.net/doc/ca618233.html,/michaelxu/archive/2010/03/30/17 00445.html
https://www.360docs.net/doc/ca618233.html,/Articles/7859/Building-COM-O bjects-in-C
https://www.360docs.net/doc/ca618233.html,/how-to/fix-not-recognized-as-an-i nternal-or-external-command
C语言文件流操作函数大全
clearerr(清除文件流的错误旗标) 相关函数feof 表头文件#include
nodejs文件操作模块FS(File System)常用函数简明总结
nodejs文件操作模块FS(File System)常用函数简明总结 件系统操作相关的函数挺多的。首先可以分为两大类。 一类是异步+回调的。一类是同步的。 在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可 1.首先是一类最常规的读写函数,函数名称和形式,应该是起源于C语言的。 复制代码代码如下: fs.open(文件路径,读写标识,[文件mode值,666],回调函数(err,文件句柄fd)); fs.read(文件句柄fd,被写入的buffer,offset,length,position,回调函数(err,bytesRead,buffer)); fs.write(文件句柄fd,被读取的buffer,offset,length,position,回调函数(err,bytesWritten,buffer)); fs.close(文件句柄,回调函数) fs.truncate(文件句柄,截断长度,回调函数); fs.fsync(文件句柄,回调函数); 2.直接对文件进行读写的,用起来比较方便。 复制代码代码如下: fs.readFile(文件名,编码,回调函数(err,data)); fs.writeFile(文件名,数据,编码,回调函数(err)); fs.appendFile(文件名,数据,编码,回调函数(err)); 3.其它常用文件操作 复制代码代码如下: 判断文件是否存在 fs.exists(文件路径,callback(是否存在)); 重命名 fs.rename(旧文件名,新文件名,回调函数); 文件所有者变更 fs.chown(文件名,uid,gid,回调函数);/fs.fchown(文件句柄fd,uid,gid,回调函数);/fs.lchown(链接路径,uid,gid,回调函数); 文件权限变更 fs.chmod(文件名,mode,回调函数);/fs.fchmod(文件句柄,mode,回调函数);/fs.lchmod(链接路径,mode,回调函数); 文件信息 fs.stat(文件路径,回调函数(err.fs.Stats对象));/fs.fstat(文件句柄fd,回调函数(err.fs.Stats对象));/fs.lstat(链接路径,回调函数(err.fs.Stats对象)); 文件时间 fs.utimes(文件路径,访问时间,新建时间,回调函数);/fs.futimes(文件句柄,访问时间,新建时间,回调函数); 监视文件 fs.watchFile(文件名,[options],listener_callback(当前文件的stats,改变前的stats)); fs.unwatchFile(文件名); 4.目录操作 复制代码代码如下: fs.mkdir(路径,权限mode/777,回调函数); fs.rmdir(路径,回调函数);
C语言基础自学总结之十:文件操作
C语言基础自学总结之十:文件操作 要点: 1.文件操作,就是通过程序,操作文件 2.两个方面:读,写 一.fopen 打开文件 函数原型:FILE *fopen(char *filename, char *type);int fclose(FILE *fp); 头文件:#include
返回非0,否则返回0。 例子1: #include
VB_Open_文件操作类函数功能详解
VB Open 文件操作类函数功能详解: 1、Open 文件名[For方式] [Access存取类型] [锁定] AS [#]文件号[Len=记录长度] 功能: 为文件的输入输出分配缓冲区,并确定缓冲区所使用的存取方式 说明: (1)打开方式: 指定文件的输入输出方式,可选,默认是Random。可以是以下值: a、Output:指定顺序输出方式,将覆盖原有内容。 b、Input:指定顺序输入方式。 c、Append:指定顺序输出方式,在文件未尾追加内容。 d、Random:指定随机存取方式,也是默认方式,在Random方式时,如果没有Access子句,则在执行Open语句时,VB将按下列顺序打开文件:读/写、只读、只写。 e、Binary:指定二进制文件。在这种方式下,可以用Get和Put语句对文件中任何字节位置的信息进行读写。在Binary方式中,如果没有Access子句,则打开文件的类型与Random方式相同。 (2)存取类型: 放在关键字Access之后,用来指定访问文件的类型。可以是下列类型之一: a、Read:打开只读文件。 b、Write:打开只写文件。 c、Read Write:打开读写文件。这种类型只对随机文件、二进制文件及用Appe nd方式打开的文件有效。 (3)锁定类型: 该子句只在多用户或多进和环境中使用,用来限制其他用户或其他进程对打开进行读写操作。锁定类型包括: a、默认:如不指定锁定类型,则本进程可以多次打开文件进行读写;在文件打开期间,其他进程不能对该文件执行读写操作。 b、Lock Shared:任何机器上的任何进程都可以对该文件进行读写操作。 c、Lock Read:不允许其他进程读该文件。只在没有其他Read存取类型的进程访问该文件时,才允许这种锁定。 d、Lock Write:不允许其他进程写这个文件。只在没有其他Write存取类型的进程访问该文件时,才允许这种锁定。 e、Lock Read Write:不允许其他进程读写这个文件。 如果不使用lock子句,则默认为Lock Read write。 (4)文件号: 由用户自行指定一个由1~511之间的整数,只要该文件号未被使用就合法;打开文件后,可以用该文件号进行读写等操作。
文件操作函数
var file_name:string; file_name:='c:\luther.gliethttp.txt'; FileWrite(com.log_fd, PChar(file_name)^, length(file_name)); 文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道。文件的本质是一个数据流,所有的文件实际上是一串二进制序列。 文件管理包括:1、文件操作。2、目录操作。3、驱动器操作。三部分。 1、常见文件操作函数和过程。 1.1、AssignFile过程 作用:将一个外部文件的文件名与一个File类型的变量关联,并对变量进行初始化。 原型:procedure AssignFile(var F; FileName: String); F:一个File类型的变量,可以是任何数据类型。 FileName:外部文件的文件名。 1.2、FileExists函数 作用:用于测试指定文件名的文件是否存在。 原型:function FileExists(const FileName: String): Boolean; FileName:文件名。字符串类型。 注意:如果文件存在,返回True;否则,返回False。 1.3、Append过程 作用:为在一个已经存在的文件末尾添加文本做好准备工作。文件是只写方式打开的。 原型:procedure Append(var F: Text); F: 一个TextFile类型变量。 注意:这是一个对文本类型文件操作的过程。其中变量F必须和外部文件关联。如果F没有与外部文件关联,将抛出异常。如果F已经处于打开状态,则过程会关闭F并重新打开。文件指针位置将被设置在文件末尾。 1.4、Reset过程 作用:对于文本文件,Reset过程将以只读方式打开文件。对于类型文件和无类型文件,Reset 过程将以可读写方式打开文件。打开已存在文件,打开不存在文件用Rewrite 原型:procedure Reset(var F [: File; RecSize: Word ] ); F:File类型变量,可以是任何文件类型。 RecSize:文件的大小。它是一个可选的选项,只有当F为无类型文件时才可以被指定。如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。如果参数RecSize被省略了,则默认的记录大小为128字节。 注意:当该过程打开文件时,如果文件不存在则产生异常。如果文件已经打开了,则先关闭文件,然后重新打开,并将文件指针放到文件开头处。默认的文件模式(FileMode)为2,即可读写模式。如果文件模式在调用Reset过程前都还未改变,则尝试打开一个只读文件会失败。当调用Reset过程后,如果文件为空,则Eof函数返回True,否则返回False。 1.5、Rewrite过程 作用:对于一个已存在的文件,此操作将使文件被覆盖。对于一个不存在的文件,将创建并打开文件。对于一个已打开的文件,则关闭文件,并重新创建一个新的文件(覆盖原有的)。文件指针也被设置到空文件的开头处。 原型:procedure Rewrite(var F: File [; Recsize: Word ] ); F:File类型变量,可以是任何文件类型。 RecSize:文件的大小。它是一个可选的选项,只有当F为无类型文件时才可以被指定。如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。如果
文件操作函数
C语言文件操作函数大全(超详细) 作者:字体:[增加减小] 类型:转载时间:2013-05-31 我要评论 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 . . fopen(打开文件) 相关函数open,fclose 表头文件#include
C语言文件操作函数总结
文件操作函数: 打开方式的取值和意义如下: ◆"r":该打开方式为只读方式 ◆"w":该打开方式为只写方式 ◆"a":该打开方式为尾加方式 ◆"r+":该打开方式为读/写方式,相当于"r"与"w"方式的结合。 ◆"w+":该打开方式为读/写方式,相当于"r"与"w"方式的结合。 ◆"a+":该打开方式为读/尾加方式 ◆"rb":该打开方式为只读方式 ◆"wb":该打开方式为只写方式 ◆"ab":该打开方式为尾加方式 ◆"rb+":该打开方式为读/写方式,相当于"rb"与"wb"方式的结合。 ◆"wb+":该打开方式为读/写方式,相当于"rb"与"wb"方式的结合。 ◆"ab+":该打开方式为读/尾加方式 打开文件:fopen( "文件路径",“使用文件方式”)。 关闭文件: fclose( 文件指针)。 char fgetc(FILE *p); 函数读取参数p指向的文件。fgetc函数返回一个字符。 处理读取结束:对于文本文件,如果读取位置到达文件末尾,fgetc函数返回一个结束标志EOF ; ANSI C提供了一个feof(FILE *p) 函数,当fgetc函数读取到文件末尾时,feof(FILE *p)函数返回1,否则返回0。 char * fgets(char str[],int n,FILE *p) ; 函数读取参数p指向的文件每次调用fgets(char str[],int n,FILE *p) 就顺序地读取n个字节,如此顺序地读取,直到读取的n个字节包含文件的结束标志。 fgets函数按文本方式读取文件,如果读取的n个字节中含有文件的结束标志EOF,fgets函数返回NULL。 char fputs(char str[],FILE *p); 向参数p指向的文件写入字符数组str。每次调用fputs函数就顺序地向文件中写入字符串str,如此顺序地写入,直到停止调用fputs函数或发生写入错误。
C语言中的文件操作相关函数
文件的打开与关闭,读与写操作的相关函数,在对文件操作之前,必须定义一个文件指针,这样的话,才能对该文件进行操作。c语言中的文件操作相关函数的头文件都是 #include
“rb”(只读):为输入打开有一个二进制文件 “wb”(只写):为输出打开一个二进制文件对文件进行写操作“ab”(追加): 向二进制文件尾添加数据 “r+”(读写):为读写打开一个文本文件 “w+”(读写):为读写建立一个新的文本文件 “a+”(读写): 向文本文件尾添加数据 “rb+”(读写):为读写打开一个二进制文件 “wb+”(读写):为读写建立一个新的二进制文件 “ab+”(读写): 为读写打开一个进制文件 模式读写位置截断原内容创建 rb Y N 文件头 N N r+b Y Y 文件头 NN wb N Y 文件头 Y Y w+b Y Y 文件头 YY ab N Y 文件尾 N Y a+b Y Y 文件尾 N Y 2)fclose()函数 函数功能:文件的关闭 函数原型:fclose(文件指针) int fclose(FILE *stream) 函数返回值:成功关闭文件返回值为0,否则返回EOF(-1);
文件操作
实验八文件操作 一、实验目的 1.掌握文件、文件缓冲系统、文件指针的概念; 2.学会使用缓冲文件系统中的文本及流式方式将文件打开、关闭、读、写等文件操作函数; 3.掌握并理解读写文件与文件缓冲区、程序数据区之间数据交换流程。 二、实验内容及要求 1、从键盘输入多个字符串,然后将其保存到磁盘上的文件file1.txt上,该文件打开时用文本模式; 要求: (1)利用gets字符串函数从键盘输入多个字符串,放入到字符数组。 (2)利用fopen函数打开文件,要指定file1.txt的文件路径(注意:文件路径的表示方法)。(3)利用fputs函数将字符数组里的字符串写到文件里(注意:在输出一个字符串后,要人为将一个’\n’写到文件里)。 (4)利用fgets函数将文件里的字符串读出显示到屏幕上 (知识点:文本文件的打开、关闭操作,fopen函数和fputs函数的使用。) 2、修改上题的程序:用结构体定义学生学号、姓名、成绩,输入若干个数据到file2.txt中,并将其显示在显示器上。 要求: (1)定义一个结构体数组,数组元素为结构体类型,成员有学号、姓名、成绩,数组长度为SIZE。 (2)定义一个save函数,利用fwite函数将数组中的元素写到指定的file2.txt文件中。(3)定义一个print函数,利用fread函数将file2.txt文件中的成组数据读入到内存,再显示到屏幕上。 (4)在主函数里调用save和print 函数。 (知识点:二进制文件的打开、关闭操作,fwite函数和fread函数的使用。) 3、应用读写定位指针,将2中的第奇数个学生的数据,写入到另一个file3.txt文件中并将其显示在显示器上进行比较。 要求: (1)按二进制只读方式分别打开file2.txt和file3.txt文件。(注意:需要设两个文件指针)(2)利用fseek函数将文件位置标记指向file2.txt文件开头,每次位移量应定位在第奇数个学生上。 (3)利用fread函数将file2.txt文件中的当前学生数据读入到内存中的结构体数组元素上,再显示到屏幕上。 (4)利用fwite函数将数组中的元素写到指定的file3.txt文件中。 (5)利用feof函数判断file2.txt文件信息是否读完,最后关闭两个文件。 (知识点:fseek函数和feof函数的使用。)
C语言文件操作函数mktemp
mktemp 目录 C语言创建唯一临时文件函数mktemp 程序示例1 程序例2C语言创建唯一临时文件函数mktemp 函数简介 头文件:在TC2.0中其头文件是dir.h,在Visual C++ 6.0中,更多的使用_mktemp,其头文件是io.h 定义函数 char * mktemp(char * template); 功能: mktemp()用来产生唯一的临时文件名。参数template所指的文件名称字符串中最后六个字符必须是XXXXXX。产生后的文件名会借字符串指针返回。 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。 其他创建临时文件的函数:tmpfile,tmpnam程序示例 程序示例1 (在Visual C++ 6.0中运行通过) #include
C语言文件操作函数大全
~~~~~~~~~~##打印了好好学习##~~~~~~~~~~歪诗协会QQ978107204 C语言文件操作函数大全 相关函数feof 表头文件#include
I&O文件操作常用函数详细说明
目录 一、常用函数列表 (2) 二、函数详细说明 (2) 1.open() (2) 2.close() (3) 3.lseek() (3) 4.read() (3) 5.write() (3) 6.eof() (3) 7.filelength() (3) 8.rename() (4) 9.chsize() (4)
这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,而上篇所说流式文件操作是通过缓冲区来进行;流式文件操作是围绕一个FILE指针来进行,而此类文件操作是围绕一个文件的“句柄”来进行,什么是句柄呢?它是一个整数,是系统用来标识一个文件(在WINDOWS中,句柄的概念扩展到所有设备资源的标识)的唯一的记号。此类文件操作常用的函数如下表,这些函数及其所用的一些符号在io.h和fcntl.h中定义,在使用时要加入相应的头文件。 一、常用函数列表 open() 打开一个文件并返回它的句柄 close() 关闭一个句柄 lseek() 定位到文件的指定位置 read() 块读文件 write() 块写文件 eof() 测试文件是否结束 filelength() 取得文件长度 rename() 重命名文件 chsize() 改变文件长度 二、函数详细说明 1.open() 打开一个文件并返回它的句柄,如果失败,将返回一个小于0的值,原型是int open(const char *path, int access [, unsigned mode]); 参数path是要打开的文件名,access是打开的模式,mode是可选项。表示文件的属性,主要用于UNIX系统中,在DOS/WINDOWS这个参数没有意义。其中文件的打开模式如下: O_RDONL Y 只读方式O_WRONL Y 只写方式 O_RDWR 读/写方式O_NDELAY 用于UNIX系统 O_APPEND 追加方式O_CREAT 如果文件不存在就创建 O_TRUNC 把文件长度截为0 O_EXCL 和O_CREAT连用,如果文件存在返回错误O_BINARY 二进制方式O_TEXT 文本方式 对于多个要求,可以用"|"运算符来连接,如O_APPEND|O_TEXT表示以文本模式和追加方式打开文件。 例:int handle=open("c:\\msdos.sys",O_BINARY|O_CREAT|O_WRITE)
C语言文件操作常用函数详解
C语言文件操作常用函数 详解 This model paper was revised by the Standardization Office on December 10, 2020
C语言文件操作详解 在C语言文件操作的过程中,通常有以下几种方式: 1.单个字符的操作: fputc 函数原型:intfputc(intc,FILE*fp); 功能:把一字节代码c写入fp指向的文件中 返回值:正常,返回c;出错,为EOF(-1) fgetc 函数原型:intfgetc(FILE*fp); 功能:从fp指向的文件中读取一字节代码 返回值:正常,返回读到的代码值;读到文件尾或出错,为EOF(-1) feof 函数原型:intfeof(FILE*fp); 功能:判断文件是否到末尾 返回值:文件未结束,返回0;文件结束,返回真(非0)示例: #include
C++_的各种文件读写操作总结
C++ 的各种文件读写操作总结[转载] 收藏 在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1、基于C的文件操作; 2、基于C++的文件操作; 3、基于WINAPI的文件操作; 4、基于BCB库的文件操作; 5、特殊文件的操作。 壹、基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。 一、流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef struct { int level; /* fill/empty level of buffer */ unsigned flags; /* File status flags */ char fd; /* File descriptor */ unsigned char hold; /* Ungetc char if no buffer */ int bsize; /* Buffer size */ unsigned char _FAR *buffer; /* Data transfer buffer */ unsigned char _FAR *curp; /* Current active pointer */ unsigned istemp; /* Temporary file indicator */ short token; /* Used for validity checking */ } FILE; /* This is the FILE object */ FILE这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表函数功能 fopen() 打开流 fclose() 关闭流 fputc() 写一个字符到流中 fgetc() 从流中读一个字符 fseek() 在流中定位到指定的字符 fputs() 写字符串到流 fgets() 从流中读一行或指定个字符 fprintf() 按格式输出到流
文件操作函数总结(一)
文件操作函数总结(一) 已有11311 次阅读2008-12-13 18:00 1、文件的访问权限控制chmod/fchmod #include
SAP ABAP 文件操作函数大全
Working With Files Skip to end of metadata Created by Xinpeng Lin, last modified by Gregor Wolf on Feb 09, 2016 Go to start of metadata Author: Xinpeng Lin Submitted: 11.9.2007 This Code Snippets will clarify some general process of working with files when ABAP programmming. Such as,Uploading/Downloading files from/to Application/Presentation server, adding F4 help to file path on the selection-screen,checking file existence. Check File Existence Before we process the file which is input on the selection screen by end-user, we need to check whether this file exists or not. If it does not exist, we just give an error message and need not to go into the main program .This logic should be done within the event 'AT SELECTION-SCREEN'. presentation server file For the presentation server file,here intruduce 2 ways, one is Function Module, the other is Class Static Method. 1. Using Funciton Moudle 'DX_FILE_EXISTENCE_CHECK'. DATA: gdf_file_exist(1) TYPE c. PARAMETERS p_file TYPE dxfile-filename. AT SELECTION-SCREEN. CALL FUNCTION 'DX_FILE_EXISTENCE_CHECK' EXPORTING filename = p_file pc = 'X' * SERVER = IMPORTING file_exists = gdf_file_exist. IF NOT ( sy-subrc = 0 and gdf_file_exist = 'X' ) MESSAGE 'the input file does not exist.' TYPE 'E'. ENDIF. Pay attention to the importing parameter 'pc', it should be set as 'X'. 2. Using Class Static Method 'CL_GUI_FRONTEND_SERVICES=>FILE_EXIST'
C语言文件操作函数freopen
freopen 目录 函数简介 程序例 函数简介 函数名: freopen 功能: 替换一个流,或者说重新分配文件指针,实现重定向。如果stream流已经打开,则先关闭该流。如果该流已经定向,则freopen将会清除该定向。此函数一般用于将一个指定的文件打开一个预定义的流:标准输入、标准输出或者标准出错。 用法: FILE *freopen(const char *filename,const char *type, FILE *stream); 头文件:stdio.h 返回值:如果成功则返回该指向该stream的指针,否则为NULL。 程序例 举例1: #include