以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 义全局代码的API时Lib和Alias两个关键字分别是什么意思? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34175) |
-- 作者:wwwzhucom -- 发布时间:2013/6/1 15:04:00 -- 义全局代码的API时Lib和Alias两个关键字分别是什么意思? 大家好,在foxtable中,在定义全局代码的API时Lib和Alias两个关键字分别是什么意思啊?求解! |
-- 作者:Bin -- 发布时间:2013/6/1 15:07:00 -- LIB是指你要使用的DLL文件名称,重名的时候需要使用的,AliAS 是说原本名称为 XXX [此贴子已经被作者于2013-6-1 15:50:59编辑过]
|
-- 作者:wwwzhucom -- 发布时间:2013/6/1 15:38:00 -- 哦,谢谢你啊,还有一个问题就是,在Alias重命名的某个名称后有一对括号,并且有的有参数,有的没有,还有返回值类型,这些都起什么作用呢?在写代码时直接使用重命名的名称就可以了吗? |
-- 作者:Bin -- 发布时间:2013/6/1 15:49:00 -- *.dll文件中的函数名称可能和你前面Declare部分的名称不一致,那么alias关键字就是说明*.dll文件中的API函数名称叫什么名字的,如果*.dll文件中的函数名称与前面Declare部分的名称一致,alias就可以省略不写。 [此贴子已经被作者于2013-6-1 15:50:12编辑过]
|
-- 作者:wwwzhucom -- 发布时间:2013/6/1 17:18:00 -- 谢谢了,我在命令窗口调用*dll中的函数时,提示无法找到我要调用这个函数的入口点什么意思?如下图 [此贴子已经被作者于2013-6-1 17:20:43编辑过]
|
-- 作者:Bin -- 发布时间:2013/6/1 17:21:00 -- 我的意思是通配 * 代表所有字符啦.意思是某个.DLL |
-- 作者:wwwzhucom -- 发布时间:2013/6/1 17:29:00 -- 这个我知道,例如下面定义的这个API函数: Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long 在命令窗口调用CopyFileA这个函数时,它会提示无法在Dll"kernel32.dll"中找到“CopyFileA”这个函数的入口点,但这个函数确实存在啊 |
-- 作者:Bin -- 发布时间:2013/6/1 17:35:00 -- 你在命令窗口应该是调用 CopyFile才对的啊 你都已经改名了 |
-- 作者:Bin -- 发布时间:2013/6/1 17:38:00 -- 而且,你不要用Private 要用public |
-- 作者:wwwzhucom -- 发布时间:2013/6/3 17:26:00 -- 还是不行啊,是用vs2010来编写的类文件,并编译成dll的,提示在那个dll中找不到那个函数的入口点 下面是在全局代码中定义这两个函数的代码: Public Declare Function CharacterToCoding lib "VBHanZiKu.dll" Alias "CharacterToCoding" (byval Character As String) As String Public Declare Function CodingToCharacter lib "VBHanZiKu.dll" Alias "CodingToCharacter" (byval coding As String) As String
类库文件名是:VBHanZiKu.dll
里面有用vb写的两个函数,分别是:CharacterToCoding 和 CodingToCharacter,在命令窗口调用CharacterToCoding这个函数时,出现在Dll“VBHanZiKu.dll”中找不到“CharacterToCoding”函数的入口点这个问题,开始时也添加了外部引用,不知道怎么回事!
附件中是出现错误的截图及dll动态链接库,请帮我查下这个原因,谢谢了! |