|
楼主 |
发表于 2004-11-3 20:57:47
|
显示全部楼层
:-( 编译不通过的问题已经解决,但是执行的时候出现问题,
通过输出可以看出, dlsym返回的结果是0
但是,库文件中的接口应该是正确的,我用隐式方法调用成功了
以下是源代码,烦请版主帮忙!!
//mydll.cpp
#include <stdio.h>
void Message()
{
printf("\ntest dll ok\n");
return ;
}
gcc -shared -o libmydll.so mydll.cpp
//testdll.cpp
#include <stdio.h>
#include <dlfcn.h>
typedef void (*Message)();
void main()
{
void * m_handle=dlopen("../dll/libmydll.so",RTLD_LAZY);
Message message;
if(!m_handle)
{
printf("load fail\n");
return 0;
}
printf("load successful\n");
message=(Message)(dlsym(m_handle,"Message"));
printf("%d\n",message);
(*message)();
dlclose(m_handle);
}
gcc -o testdll testdll.cpp -ldl
显示的结果为
./testdll
load succeful
0
Segmentation fault (core dumped) |
|