我在VB中向VC做的DLL中传递结构体。例如我船入实参dd1,在DLL中处理好后存入dd并返回,可结果不对啊!
VB中代码:
Declare Function cardconfig1 Lib "aa.dll" (dd1 As config, dd As config) As config
Type config
intermit As Integer
address As Integer
End Type
'-------------------------------------
Private Sub Command1_Click()
Dim dd1 As config, dd As config
dd1.intermit = 100
dd1.address = 200
dd = cardconfig1(dd1, dd)
Print dd1.intermit
Print dd1.address
Print dd.intermit
Print dd.address
End sub
'=======================================
VC做的DLL中的代码:
//aa.cpp
#include "dllZZW.h"
struct config WINAPI cardconfig1(struct config dd1,struct config dd)
{
//dd.intermit=3000;
//dd.address=2000;
dd.intermit =dd1.intermit+1;
dd.address =dd1.address+1;
//card_config1=dd;
return dd;
}//dllZZW.h
#ifndef dllZZW_H_H
#define dllZZW_H_H
struct config
{
unsigned short int intermit;
unsigned short int address;
} card_config; #endif dllZZW_H_H//aa.def
LIBRARY "aa"
DESCRIPTION 'aa Windows Dynamic Link Library'
EXPORTS cardconfig1请那位高手指点。最好帮我调试好,谢谢!
VB中代码:
Declare Function cardconfig1 Lib "aa.dll" (dd1 As config, dd As config) As config
Type config
intermit As Integer
address As Integer
End Type
'-------------------------------------
Private Sub Command1_Click()
Dim dd1 As config, dd As config
dd1.intermit = 100
dd1.address = 200
dd = cardconfig1(dd1, dd)
Print dd1.intermit
Print dd1.address
Print dd.intermit
Print dd.address
End sub
'=======================================
VC做的DLL中的代码:
//aa.cpp
#include "dllZZW.h"
struct config WINAPI cardconfig1(struct config dd1,struct config dd)
{
//dd.intermit=3000;
//dd.address=2000;
dd.intermit =dd1.intermit+1;
dd.address =dd1.address+1;
//card_config1=dd;
return dd;
}//dllZZW.h
#ifndef dllZZW_H_H
#define dllZZW_H_H
struct config
{
unsigned short int intermit;
unsigned short int address;
} card_config; #endif dllZZW_H_H//aa.def
LIBRARY "aa"
DESCRIPTION 'aa Windows Dynamic Link Library'
EXPORTS cardconfig1请那位高手指点。最好帮我调试好,谢谢!
struct config WINAPI cardconfig1(struct config & dd1,struct config & dd)