(VC中)
1.建立工程,选择MFC AppWiZard(Dll)
2.选Regular Dll using shared MFC Dll (按完成)
3.在工程中添加必要的类,函数等
4.在StdAfx.cpp文件编写引出函数,
5.在def文件中说明引出函数及接口
EXPORTS
; Explicit exports can go here
RSA_DeCrypt @1
7.编译成Dll(在VB中)
1.先把Dll放到程序工程目录下
2.引出函数:(跟上面对应)
注:VB中的Long对应VC中的Int,
VC中用到字符指针,在VB中可以用字符串,但的注意前面加ByVal 代码可以返回的,并且的先给字符串赋值(也就是定下字符的长度)
Public Declare Function RSA_DeCrypt Lib "MyRSAD.dll" (ByVal strData As String, ByVal strReturn As String) As Long
3.使用dll中的函数,如下:
Private Sub cmdDecrypt_Click()
Dim strT As String
Dim i As Long
strT = Space(60) ' " "
i = RSA_DeCrypt(txtOutPut.Text, strT)
txtOuptDecrypt.Text = Trim(strT)
End Sub问题:
我是在同一台机上用vc和vb编写的,编写后的dll文件是放在工程目录的
在我的机上使用什么问题都没有
但当我把程序帮到别的机上就提示找不到dll文件,奇怪!!
难道vb程序调用dll的时候,不查找当前目录??
这是个问题!!
我这是第二次碰到这样的问题了,那位高手能说是个原由来吗?!
我想同样的问题不应该出现两次,但它出现,说明这并不是偶然
1.建立工程,选择MFC AppWiZard(Dll)
2.选Regular Dll using shared MFC Dll (按完成)
3.在工程中添加必要的类,函数等
4.在StdAfx.cpp文件编写引出函数,
5.在def文件中说明引出函数及接口
EXPORTS
; Explicit exports can go here
RSA_DeCrypt @1
7.编译成Dll(在VB中)
1.先把Dll放到程序工程目录下
2.引出函数:(跟上面对应)
注:VB中的Long对应VC中的Int,
VC中用到字符指针,在VB中可以用字符串,但的注意前面加ByVal 代码可以返回的,并且的先给字符串赋值(也就是定下字符的长度)
Public Declare Function RSA_DeCrypt Lib "MyRSAD.dll" (ByVal strData As String, ByVal strReturn As String) As Long
3.使用dll中的函数,如下:
Private Sub cmdDecrypt_Click()
Dim strT As String
Dim i As Long
strT = Space(60) ' " "
i = RSA_DeCrypt(txtOutPut.Text, strT)
txtOuptDecrypt.Text = Trim(strT)
End Sub问题:
我是在同一台机上用vc和vb编写的,编写后的dll文件是放在工程目录的
在我的机上使用什么问题都没有
但当我把程序帮到别的机上就提示找不到dll文件,奇怪!!
难道vb程序调用dll的时候,不查找当前目录??
这是个问题!!
我这是第二次碰到这样的问题了,那位高手能说是个原由来吗?!
我想同样的问题不应该出现两次,但它出现,说明这并不是偶然
int __stdcall RSA_DeCrypt(char *strData,char *strOutPut)
{
CString strD,strOut;
strD=strData;
strOut="";
classRsa.Decrypt(strD,strOut);
for (int i=0;i<strOut.GetLength();i++)
strOutPut[i]=strOut.GetAt(i); return 1;
}
其实你只要把路径(绝对路径或相对路径都可以)加上就可以了,想省点事的话就将之拷贝到系统目录(SYSTEM)下.
在本机上,无论是放到当前目录,还是放到系统目录都是可以运行的但问题是,我要安装到别的机,在别的机上,无论是放到当前目录还
是放到系统目录都不可访问(提示,找不到该dll),都不知道究竟是什么
什么怪问题了
我已经碰到两次这样的问题了,难道是跟我的dll有关?
是因为选择MFC AppWiZard(Dll)有关?
但我的用到一些mfc的类(CString),所以选择这个
如果是这个问题,那为什么我的机上运行就一点问题都没有呢?
能说明一下究竟dll是怎么样工作的?
赶紧打一个PACK吧!其他参考:
1)确保你的程序是通过制作正确的安装程序安装上去的,而不是简单COPY过去的--否则可能缺少必要的类库;
2)给个绝对路径;
3)重新启动计算机;