我现在用VC显示调用一个DELPHI写的窗口:
typedef void (WINAPI * TESTDLL)();
HINSTANCE hmod;
hmod = ::LoadLibrary ("test.dll");
if(hmod==NULL)
{
AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress(hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
(*lpproc)();
FreeLibrary(hmod);
现在显示一个窗口没问题,但怎么才能传递参数呢
假如我定义Show为:
function Show(i:integer):integer;stdcall;export;
begin
Result:=i;
end;这时候怎么办?只要能解决问题,隐式调用也可以!
typedef void (WINAPI * TESTDLL)();
HINSTANCE hmod;
hmod = ::LoadLibrary ("test.dll");
if(hmod==NULL)
{
AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress(hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
(*lpproc)();
FreeLibrary(hmod);
现在显示一个窗口没问题,但怎么才能传递参数呢
假如我定义Show为:
function Show(i:integer):integer;stdcall;export;
begin
Result:=i;
end;这时候怎么办?只要能解决问题,隐式调用也可以!
解决方案 »
- VC怎么实现光驱的打开和关闭?
- 文档类中的数值如何传给对话框类中??
- 如何改写已有的接口,比如IPersistStorage
- sax basic是什么东西?
- 用纯dll实现多语言界面的SDI程序,询问是否保存文件的对话框怎么只显示按钮没有显示文字啊?
- 如何动态修改库中数据表的名字?(来者有分)
- 好久没有来了,我今天来问一个问题,我给50分,大家可要帮助我啊?
- explorer启动问题,在线等待。.
- 随便给出一个email地址如[email protected],能否自动检测此email地址对应的smtp及pop3服务器地址?
- 如何保存和打开文件html格式的文件
- 多文档中file\New和Open,达人请进。。。。。。
- 怎样实现类似 flashget 下载图表那个小圆球的东西呀。。。。
lpproc = (TESTDLL)GetProcAddress(hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
{
int result = (*lpproc)(0);
}
报下面的错:
error C2197: 'void (__stdcall *)(void)' : too many actual parameters怎么办?是不是在调用时也要声明是STDCALL,在哪声明呢?
typedef void (WINAPI * TESTDLL)();
改成
typedef int (WINAPI * TESTDLL)(int);
了没有?