以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]Foxtable调用/引用VB6时代的dll,打开窗体提示“未知编译错误!”  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80372)

--  作者:蓝才文百
--  发布时间:2016/1/21 14:33:00
--  [求助]Foxtable调用/引用VB6时代的dll,打开窗体提示“未知编译错误!”
大家好!我是Foxtable的新手。最近在做一个和老系统结合的程序。
由于老系统源代码没有,老系统中涉及到一个加解密文本的dll,我需要调用这个dll,使用里面的加解密函数。
我的操作是:
在foxtable->管理项目->外部引用 中,调入了此dll。会出现如下问题:
1.保存重新打开后,打开所有窗体,都会提示“未知编译错误!”,删除这个dll引用就不会再提示,所以这样引用看来不行,也不知道有什么其他办法。
2.是否可以在“全局代码”中,用 declare 引用?如何使用?全局代码是否就是vb中的module(*.bas的全局代码库)?

谢谢!

--  作者:大红袍
--  发布时间:2016/1/21 14:36:00
--  

vb6的dll无法直接引用。

 

vb6的代码基本上可以拷贝过来,直接写在全局代码里就行,但个别代码有区别要改成vb.net的语法。


--  作者:大红袍
--  发布时间:2016/1/21 14:38:00
--  
或者,你把dll发上来试试能否引用
--  作者:大红袍
--  发布时间:2016/1/21 14:41:00
--  

1、在vs工具那里新建一个windows项目;

 

2、引用Com,然后加入控件;

 

3、在项目的debug目录下,找到 interop.xxx.dll,然后在foxtable里引用。

 

之后,你就可以直接调用里面的东西了。


--  作者:蓝才文百
--  发布时间:2016/1/21 14:46:00
--  
在VB6中,引用此dll后,就可以在代码中使用:
Private Sub Command1_Click()
Dim c as new PubClassModule.clsEncrypt
         msgbox "加密ABC:" & c.Encrypt("ABC")
        msgbox "解密代码:"  & c.ReEncrypt(c.Encrypt("ABC"))
End Sub

大概这样。x

--  作者:大红袍
--  发布时间:2016/1/21 14:47:00
--  

2、3、4楼


--  作者:蓝才文百
--  发布时间:2016/1/21 14:47:00
--  
忘记附件了。。。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:pubclassmodule.rar


--  作者:蓝才文百
--  发布时间:2016/1/21 15:00:00
--  
OK,谢谢版主解惑,我试试先,搞定再来分享结果。
--  作者:大红袍
--  发布时间:2016/1/21 15:00:00
--  

你这个dll有问题。无法引用。你还不如直接把函数拷贝出来重写。

 

正常的步骤是这样

 

1、在vs工具那里新建一个windows项目;

 

2、把dll注册一下Regsvr32,引用Com,加入控件;

 

3、在项目的debug目录下,找到 interop.xxx.dll,然后在foxtable里引用。


--  作者:蓝才文百
--  发布时间:2016/1/21 15:02:00
--  
没有此dll的源码,不然才不用dll,没办法,呵呵。