三九宝宝网宝宝百科宝宝知识

怎样调用用PB生成的dll文件中的函数

02月25日 编辑 39baobao.com

[如何学好VB中的API函数调用]关于API函数的书!市场上太少了!就算是有,也介绍得很粗浅!你到书店好好找找!我没有API函数的好书介绍给你! 谈一下我的心得吧: 首先,有必要向大家讲一讲,什么是API。API是包含在一个附...+阅读

利用pb生成的DLL不是标准的DLL,而是com对象。不能用一般方法来调用,只能通过ole方式。

按照下面的方法自己进行调整以下,就可以了。

首先该DLL需要预先注册:run("regsvr32 /s try.dll")

该DLL的调用方法:(仅举例说明)

oleobject loo_test

loo_test=create oleobject

//n_vb是DLL的生成的COM的ID号

loo_test.connecttonewobject("n_vb")

loo_test.msgbox('hello','sucessful')

loo_test.connectdatabase('MSS','film','commandos','sa','system',FALSE,"")

loo_test.test('1001','李')

loo_test.disconnectdatabase()

destroy loo_test

其中msgbox,connectdatabase,test,disconnectdatabase是DLL中的函数

全部测试通过

PB调用 dll文件的问题

为字符串分配的空间不足,你试试直接用字符数组看看。对于一般的out成员,在PB中需要先为字符串分配空间,一般也就是用space(255)这样来做,但你这个是in out的,字符串可能比较难处理,可选的也就只有数组和blob两个了,用数组的时候用定长255的数组,动态数组还是没有分配空间的

原来不是这个问题,这个问题有两点,第一你在PB中声明的时候大小写没有注意,这个如果没有alias,这样是不行的,大小写必须和DLL中一致(有alias则 alias for 后面的那个字符串与DLL中的一致),二必须DLL中的函数正常运行才行,否则PB总是报一样的错误的,测试表明,你的LockDll.Dll需要其它DLL的支持才能正常运行。你只要将所有的DLL拷贝到PBt所在的目录,然后这样声明外部函数就成了:Function long StartSession_v2(long lockcard,long version,string server,string loguser) Library "LockDll.Dll"

都是普通参数使用我就不多少了,因为我没有正确的SQLServer数据库只能得出-53247,也就是FFFF3001,连接SQL出错了

如何用pb编写dll文件

Dll文件可以用EVC来开发,也可以使用PB来开发,使用PB开发驱动程序,可以跟NK同时进关键词:dll在Windows CE中,所有的驱动程序都以dll形式存在。Dll文件可以用EVC来开发,也可以使用PB来开发,使用PB开发驱动程序,可以跟NK同时进行编译,要比EVC来的方便一点。这篇文章就只要介绍用PB来进行dll库开发的方法。

使用PB来开发,首先应该在你的工作平台下面建立一个目录,用来存放源文件,同时要修改dir文件,使得编译的时候能够进到源文件所在的目录。

编写dll的方法这里就不说了,反正就是写一堆的函数,这里主要解释一下使用PB编译,需要增加的文件。

第一个文件是sources文件,这里给出了一个sources文件的例子:

TARGETNAME=led

使用TARGETNAME来指示生成目标的文件名(不包含扩展名,扩展名PB会自动加上)

RELEASETYPE=PLATFORM

RELEASETYPE指示该文件将要生成的类型,一共有五个取值:

SDK:使用该类型将使得生成的目标文件被存储到%_PUBLICROOT%\Oak目录,而lib文件被放置到%_PUBLICROOT%\Sdk目录

DDK:使用该类型将使得生成的目标文件被存储到%_PUBLICROOT%\Oak目录,而lib文件被放置到%_PUBLICROOT%\Ddk

PLATFORM:使用该类型将使得生成的文件受平台控制

LOCAL:该类型使得生成的文件全部放置到当前路径

CUSTOM:该类型使得生成的文件放置到TARGETPATH制定的位置(也就是说必须要有TARGETPATH参数设置)

TARGETTYPE=DYNLINK

生成的目标类型,LIBRARY表示是一个lib库,DYNLINK则表示是dll,而PROGRAM则是一个exe文件

TARGETLIBS=

$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib

TARGETLIBS指示连接需要的库的名字

SOURCELIBS=mm.lib

DEFFILE=led.def

DLL文件的def文件名

INCLUDES=..\..\inc

指定include的路径SOURCES=led.c

指定参与该规则的所有的源文件

第三个文件是def文件,下面是一个该文件的实例

以下为关联文档:

java生成 m文件然后调用matlab执行得到结果并且返回到java中这个思路不大好。应该生成文本文件(或者二进制文件),然后在matlab里面用load命令读进来。除非你对于不同的数据是要调用不同的.m文件来分析,并且没什么规律科研。不然,我上面说的...

PDF文件怎样生成目录想要生成目录在Word,自动生成的目录的操作步骤: 一、设置标题格式 1、选中文章中的所有一级标题; 2、单击开始选项卡上的标题1,如图所示; 仿照步骤 1、2设置 二、三级标题格式为标题 2、标题3...

怎么调用matlab中函数编写m文件生成服从均匀分布的随机数用Matlab的rand()和unidrnd()产生服从均匀分布的一组随机数 rand(m,n)产生m行n列的【0,1】均匀分布随机数 unidrnd(N,m,n)产生m行n列的数值小于N的【0,N】均匀分布随机数 >> r...

初学者如何学习调用dll里面的函数1)添加引用dll //这个你已经实现了 ,而dll的名称MVision正是GetPicture方法所在类的命名空间的名称. 2)using MVision; // 你已经实现,引用GetPicture方法所在类的命名空间 3)尝...

请教怎么调用DLL中的函数TypeTShowReport= REPEDIT(A:THandle;B:TComponent;C:String;D:TStrings;E:Word;F:TFileName):Integer;Stdcall; EDLLLoadError=Class(Exception);//调用DLL的函数:Function (...

函数调用函数指针一般需要定义一个函数指针类型 typedef int (*function_pointer_t) ( int arg1, int arg2 );然后,定义函数指针变量 function_pointer_t fp_invoker = 0;函数指针可以动态改变...

如何正确调用Create或者CreateEx函数生成CWnd类派生类的具有WSnew 一个CWnd,再Create不就成功了么Create的参数很简单啊,你注意不同的控件,有不同的字符串标示,比如:_T("EDIT") _T("LISTBOX")等,剩下的参数是窗口位置、样式、父窗口、ID,这些都好赋...

如何生成lib dll文件 vc1:DLL 的编制与具体的编程语言及编译器无关 只要遵循约定的DLL接口规范和调用方式,用各种语言编写的DLL都可以相互调用。譬如Windows提供的系统DLL(其中包括了Windows的API),在...

java外部生成的class文件我需要用JSP调用它来在网页上面显示输出1、先把class文件放到web工程中。 2、通过反编译,查看Codesource此类的包名,然后再jsp中import 3、在jsp页面用java.lang.ProcessBuilder去启动Codesource进程,获取输出流。打...

推荐阅读
图文推荐