我的vc程序是这样的.
serial.cpp:
#define CIPHER_API __declspec(dllexport) //声明我的函数
CIPHER_API int __stdcall DecryptData(char* buf_i , char* buf_o , int len);
....
int __stdcall DecryptData(char* buf_i , char* buf_o , int len)
{
...
}
我的vb程序声明是这样的:
Private Declare Function DecryptData Lib "xiudou.DLL" (ByRef buf_i As Byte, ByRef buf_o As Byte, len1 As Long) As Long
调用时:
Private Sub Form_Load()
Dim buf_i(128) As Byte
Dim buf_o(128) As Byte
Dim l As Long
buf_i(0) = 1
l = DecryptData(buf_i(0), buf_o(0), 128)
End Sub
可是在最后调用的时候DecryptData, 总报错"找不到dll入口点",如何解决呢?
我在网上搜了一下, 有的说要改写.def文件,可我看了,我的vc工程中没有.def文件,到底需不需要呢?
serial.cpp:
#define CIPHER_API __declspec(dllexport) //声明我的函数
CIPHER_API int __stdcall DecryptData(char* buf_i , char* buf_o , int len);
....
int __stdcall DecryptData(char* buf_i , char* buf_o , int len)
{
...
}
我的vb程序声明是这样的:
Private Declare Function DecryptData Lib "xiudou.DLL" (ByRef buf_i As Byte, ByRef buf_o As Byte, len1 As Long) As Long
调用时:
Private Sub Form_Load()
Dim buf_i(128) As Byte
Dim buf_o(128) As Byte
Dim l As Long
buf_i(0) = 1
l = DecryptData(buf_i(0), buf_o(0), 128)
End Sub
可是在最后调用的时候DecryptData, 总报错"找不到dll入口点",如何解决呢?
我在网上搜了一下, 有的说要改写.def文件,可我看了,我的vc工程中没有.def文件,到底需不需要呢?
http://www.codeproject.com/dll/XDllPt1.aspCalling C++ DLLs from VC++ and VB - Part 2
http://www.codeproject.com/dll/XDllPt2.asp
我估计你也是这个问题。
实现不行的话还是使用.def文件吧。LIBRARY 你的库函数名称。
DESCRIPTION "Implements a binary tree."
EXPORTS
Insert @1
Delete @2
Member @3
Min @4
------------
我们要相信IDE,它给出的信息都是有原因的或者说程序中存在BUG。
dll文件在当前目录下,但是在ide中调用函数就是出错,说找不到api入口点,编译成可执行文件就没问题了.不知道算不算bug.