• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

只有这些分了,问一个数据类型向vb转换的问题

hangdogj 2004-12-10 10:51:45
在vb中声明一个dll smeidll.dll,函数SubmitAExEx原形如下,标了序号是为了方便查找

'int WINAPI SubmitAExEx(unsigned char OrgTON, 1
' unsigned char OrgNPI,2
' LPCTSTR OrgAddr,3
' unsigned char DestTON,4
'unsigned char DestNPI,5
' LPCTSTR DestAddr,6
' unsigned char PRI,7
'unsigned char RD,8
' unsigned char RP,9
' unsigned char SRR,10
'unsigned char MR,11
' unsigned char DCS,12
' unsigned char PID,13
'LPCTSTR Schedule,14
'LPCTSTR Expire,15
' unsigned long Default_ID,16
'unsigned char UDHI,17
'unsigned long UDLen,18
' LPCTSTR UserData,19
'LPCTSTR ServiceSubType, 20
' unsigned char* byMsgID,21
'unsigned char byPKTotal, 22
'unsigned char byPKNumber, 23
'unsigned char byMsglevel,24
' unsigned char byFeeUserType, 25
' LPCTSTR sSPID,26
'LPCTSTR sFeeType, 27
' LPCTSTR sFeeAddr,28
'LPCTSTR sFeeCode,29
'unsigned char byUserNum,30
' LPCTSTR sDestAddrs,31
'unsigned long* SM_ID,32
'unsigned char* FCS 33)


我在vb中作声明,转了n次,总是提示内存读写错误,vb马上挂掉,请高手帮忙
这是我在vb中的声明


' private Declare Function SubmitAExEx _
Lib "smeidll" (ByVal OrgTON As Byte, _1
'ByVal OrgNPI As Byte, 2
'ByVal OrgAddr As String, _3
'ByVal DestTON As Byte,4
'ByVal DestNPI As Byte, _5
'ByVal DestAddr As String,6
'ByVal PRI As Byte, _7
'ByVal RD As Byte, 8
'ByVal RP As Byte, _9
' ByVal SRR As Byte, 10
'ByVal MR As Byte, _11
'ByVal DCS As Byte, 12
'ByVal PID As Byte, _13
' ByVal Schedule As String, 14
'ByVal Expire As String, _15
' ByVal Default_ID As Long, 16
'ByVal UDHI As Byte, _17
' ByVal UDLen As Long, 18
'ByVal UserData As String, _19
' ByVal sServiceType As String, 20
'ByVal byMsgID As Long, _21
'ByVal byPKTotal As Byte, 22
'ByVal byPKNumber As Byte, _23
'ByVal byMsglevel As Byte, 24
'ByVal byFeeUserType As Byte, _25
'ByVal sSPID As String, 26
'ByVal sFeeType As String, _27
'ByVal sFeeAddr As String, 28
'ByVal sFeeCode As String, _29
'ByVal byUserNum As Byte, 30
'ByVal sDestAddrs As String, _31
'ByRef SM_ID As Long,32
'ByRef FCS As Byte 33 ) As Long

请帮忙指正,谢谢了
...全文
53 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hangdogj 2004-12-13
up
回复
Zhymax 2004-12-11
LPCSTR 是用 byval

看看
unsigned char* byMsgID,21 -〉'ByVal byMsgID As Long, _21

'unsigned char* FCS 33 -〉'ByRef FCS As Byte 33
回复
hangdogj 2004-12-11
在调用的地方用断言对每一个参数检查,看哪个参数错误
------------------------------------------------------
断点可以检查每一个参数吗 ?请问如何做?
回复
hangdogj 2004-12-11
vb不是默认就是 _stdcall吗
回复
tyzyx 2004-12-10

然后在调用的地方用断言对每一个参数检查,看哪个参数错误

如果是调用错误,改变一下函数调用为__stdcall
回复
tyzyx 2004-12-10
改成传址,
回复
hangdogj 2004-12-10

没人?
回复
hangdogj 2004-12-10
我从网上找了些资料看过,里面举的例子,都是将lpcstr 以byval……as string 来传的。
例如:http://www.21tx.com/web/asp/wz/37WQN8GJZZZY1NJCHS.shtml

而且我也改成 byref过,问题也没有解决
回复
LPCTSTR OrgAddr,3
指针 ,请用byref
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-12-10 10:51
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……