vb调用vc的dll,byte指针参数怎么传递
vc,dll中的函数原型为int f1(int ch, BYTE* aa),在vb中怎样声明,如何调用
[解决办法]
- VB code
declare function f1 lib "vc.dll" (byval ch as long,byref aa as byte) as longsub main() dim n as byte dim lRet as long lRet = f1(1, n)end sub
[解决办法]
以下内容摘自MSDN
C语言数据类型 |在Visual Basic中声明为 |调用时使用的表达式
-------------------|--------------------------------|-----------------------------------------
ATOM |ByVal variable As Integer |结果为 Integer 类型的表达式
BOOL |ByVal variable As Long |结果为 Long 类型的表达式
BYTE |ByVal variable As Byte |结果为 Byte 类型的表达式
CHAR |ByVal variable As Byte |结果为 Byte 类型的表达式
COLORREF |ByVal variable As Long |结果为 Long 类型的表达式
DWORD |ByVal variable As Long |结果为 Long 类型的表达式
HWND, HDC, HMENU 等|ByVal variable As Long |结果为 Long 类型的表达式
INT, UINT |ByVal variable As Long |结果为 Long 类型的表达式
LONG |ByVal variable As Long |结果为 Long 类型的表达式
LPARAM |ByVal variable As Long |结果为 Long 类型的表达式
LPDWORD |variable As Long |结果为 Long 类型的表达式
LPINT, LPUINT |variable As Long |结果为 Long 类型的表达式
LPRECT |variable As type |自定义类型的任意变量
LPSTR, LPCSTR |ByVal variable As String |结果为 String 类型的表达式
LPVOID |variable As Any |任何变量(在传递字符串的时候使用 ByVal)
LPWORD |variable As Integer |结果为 Integer 类型的表达式
LRESULT |ByVal variable As Long |结果为 Long 类型的表达式
NULL |As Any 或 ByVal variable As Long|ByVal Nothing 或 ByVal 0& 或 vbNullString
SHORT |ByVal variable As Integer |结果为 Integer 类型的表达式
VOID |Sub procedure |不可用
WORD |ByVal variable As Integer |结果为 Integer 类型的表达式
WPARAM |ByVal variable As Long |结果为 Long 类型的表达式