VB调用VC DLL 约定错误,求高手指点
VC函数是:extern "C" int __declspec(dllexport)PassPortRead(char *InPutData,char OuPutData[255]);
VB声明是:Private Declare Function PassPortRead Lib "PPRead.dll" (ByVal InPutData As String, ByVal OutPutData As String) As Integer
生成的文件能正常运行,并且能生成相应数据,但是在调试时提示"DLL调用约定错误"
E_Mail:linnda413@126.com
VC代码:
int PassPortRead(char *InPutData,char OutPutData[255])
{
char tmp[255];
int len = 0;
memset(tmp,0,255);
//初如化成员变量passInfo
memset(PassInfo.Name,0,20);
memset(PassInfo.Birth,0,20);
memset(PassInfo.Gender,0,10);
memset(PassInfo.Nationality,0,10);
memset(PassInfo.Number,0,20);
memset(PassInfo.IdCode,0,20);
memset(PassInfo.Expiry,0,20);
memset(PassInfo.CIssue,0,20);
//删除换行与回车字符
DelInStr(InPutData,"\r");
DelInStr(InPutData,"\n");
len = strlen(InPutData);
if (len == 0)
{
return -1;
}
if (len < 80)
{
PassportParseTD2(InPutData);
}else{
PassportParseTD1(InPutData);
}
sprintf(tmp,"#01%s#02%s#03%s#04%s#05%s#06%s#07%s#08%s",
PassInfo.Name,PassInfo.Birth,PassInfo.Gender,PassInfo.Nationality,PassInfo.Number,
PassInfo.IdCode,PassInfo.Expiry,PassInfo.CIssue);
strcat(OutPutData,tmp);
return 0;
}
VB代码:
Private Declare Function PassPortRead Lib "PPRead.dll" (ByVal InPutData As String, ByVal OutPutData As String) As Integer
Private Sub START_BTN_Click()
Dim PPData As String
Dim PPShow As String
PPData = PPData_TXT.Text
PPShow = String(255, vbNullChar)
If PPData = "" Then
PRSHOW_TXT.Text = "护照数据不能为空..."
End If
Call PassPortRead(PPData, PPShow)
PRSHOW_TXT.Text = PPShow
End Sub
生成程序运行正常:
调试时出现错误
相关文档:
Private Function Utf8ToUni(B() As Byte) As String
'不使用 API,将 Utf8 转换为 Unicode
Dim BU As Long
On Error Resume Next
BU = -1: BU = UBound(B)
If BU = -1 Then Exit Function
On Error GoTo 0
&n ......
转自:http://tieba.baidu.com/f?kz=139765011
每个函数都可以强制将一个表达式转换成某种特定数据类型。
语法
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression) ......
接着外挂教程 VB 从零开始编外挂
需要VBAPI函数:
FindWindow←寻找窗口列表中第一个符合指定条件的顶级窗口
GetWindowThreadProcessId←获取与指定窗口关联在一起的一个进程和线程标识符
--------------------------------------------------------------------------------------------------------------- ......
这几天在设计阅读其中用到了很多好的技术,,让我们在设计软件的时候方便,,快捷,,美观.也是我们经常用到的一些控件.
所以在这里我会陆续把他分享出来.
这里是在窗体中改变窗体的大小.窗体内部所以控件的大小同比例的改变的一个程序
这些是在标准模块中
'定义 FormOldWidth, FormOldHeight 为全局变量,这样其他模块才能 ......