请问我的函数为何不能传出参数(50分)

  • 主题发起人 主题发起人 lark1
  • 开始时间 开始时间
L

lark1

Unregistered / Unconfirmed
GUEST, unregistred user!
aa.dll中被调用函数
extern "C" __declspec(dllexport) AnsiString __stdcall Login(AnsiString username)
{...
username=FrmLogin->Edt_UserName->Text;
...}
调用方式如下
String retValue;
AnsiString Username;
HINSTANCE hDLL;
hDLL = LoadLibrary("aa.dll");
Login = (_Login)GetProcAddress(hDLL, "Login");
retValue=Login(Username);
Edit1->Text =Username;
为什么不论被调用表单中输入什么,Edit1->Text 和Username总是返回空值?
 
哪位高手知道啊?
 
用pchar试试
 
试过char *,结果一样
 
更成
extern "C" __declspec(dllexport) AnsiString __stdcall Login(AnsiString username)
{...
Login=FrmLogin->Edt_UserName->Text;
...}
试试
 
可是我的login函数另外有返回值password啊,怎么才能同时返回username ?
 
那样定义是传不出值的,改成下面这样:
extern "C" __declspec(dllexport) AnsiString __stdcall Login(AnsiString &username)
记住在调用调用的时候的定义也要做相应修改。
另:如果用AnsiString作为DLL中的字符串类型时,VC和其它工具将不能方便地进行调用。
 
谢谢啦,太高兴了
 
接受答案了.
 
后退
顶部