社区
进程/线程/DLL
帖子详情
LoadLibrary的问题,请教高手(急!!!)
cboy2wzhx
2003-06-04 04:40:41
LoadLibrary返回0x10000000(MSDN上说是无效句柄)
GetProcAddress返回NULL
为什么?????
...全文
298
24
打赏
收藏
LoadLibrary的问题,请教高手(急!!!)
LoadLibrary返回0x10000000(MSDN上说是无效句柄) GetProcAddress返回NULL 为什么?????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cboy2wzhx
2003-06-10
打赏
举报
回复
问题解决了
是编译器设置的问题
后来我用release版试了一下发现没有问题
才知道是编译器设置的问题
谢谢各位相助
准备结贴
Zark
2003-06-10
打赏
举报
回复
首先楼主要讲清楚,这个LoadLibrary()倒底有没有成功. "返还0x10000000表明LoadLibray()出错"这句话在MSDN上我没有看到过,可否贴出来看看.
我倒是认为0x10000000是个合法的句柄,由于没有出错,GetLastError()只是取得的是上次的错误码,与你的这个LoadLibrary()没有关系.
先弄清这个问题,咱们再分析你的第二问题(找不到函数地址).
realdreamer
2003-06-09
打赏
举报
回复
LoadLibrary 最能出现的问题就是路径问题.
LoadLibrary 不成功, GetProcAddress 当然也不会成功.
red-fly
2003-06-09
打赏
举报
回复
如果还不行的话,就是你的代码的问题了。具体的就是目录的路径问题。
先说一说你的目录结构,是在哪个目录下调用哪个文件,然后再调用哪个文件,最后是调用那个dll文件
就是把你所涉及到的文件和调用过程说一说,清楚点,不要再糊里糊涂地
ukyoking
2003-06-09
打赏
举报
回复
IObjectA是自己声明的接口,我这么使用没有问题啊,要不你把你的代码再多贴一些出来
#include "IObjectA.h"
int main(int argc, char* argv[])
{
HINSTANCE hDll = ::LoadLibrary("ObjectA.dll");
typedef IObjectA* CREATEFUNC();
CREATEFUNC* CreateObjectA;
CreateObjectA = reinterpret_cast<CREATEFUNC*>(::GetProcAddress(hDll,"CreateObjectA"));
IObjectA *pIObjectA = NULL;
pIObjectA = CreateObjectA();
for (int i = 0; i < 10; i++)
{
pIObjectA->ShowMember();
pIObjectA->IncrementMember();
}
delete pIObjectA;
::FreeLibrary(hDll);
}
ukyoking
2003-06-09
打赏
举报
回复
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
extern "C" __declspec (dllexport)
IObjectA *CreateObjectA()
{
IObjectA *pObject = new ClassA ;
return pObject ;
}
cboy2wzhx
2003-06-09
打赏
举报
回复
不是以上指出的错误
难道没有一个高手吗???
red-fly
2003-06-07
打赏
举报
回复
睁大眼睛看看回复吧
你的声明搞错了,还想有效句柄?笑话
孤必有邻
2003-06-07
打赏
举报
回复
GetProcAddress()有没有写错函数名。(注意大小写)
cboy2wzhx
2003-06-05
打赏
举报
回复
请问o_racle(璐璐)
LoadLibrary返回值为什么会没有保存下来呢?
我在调用GetProcAddress时的hmodule也是0x10000000而不是0x00000000
为什么?
o_racle
2003-06-05
打赏
举报
回复
错误6是“句柄无效”,说明你的LoadLibrary返回0x10000000并没有保存下来,所以在调用函数地址时为NULL;
还有如楼上那位所说,你的函数声明有问题,应该是:
__declspec(dllexport) int MyApi();
在实现里:
extern "C"
__declspec(dllexport) int MyApi()
{
return 3;
}
red-fly
2003-06-05
打赏
举报
回复
你的声明错了,要如下才对:
__declspec(dllexport) int MyApi();
在实现里:
extern "C"
__declspec(dllexport) int MyApi()
{
return 3;
}
shining_zhangcsdn
2003-06-05
打赏
举报
回复
在导出函数的声明前应该加extern "C"
cboy2wzhx
2003-06-05
打赏
举报
回复
请问楼上
那为什么LoadLibrary会出错呢?
iamknight
2003-06-05
打赏
举报
回复
如果是用C编译器编译的,自动在导出的函数前加一个“_”
如果是用C++编译器编译,会加上一串符号,而隐式调用时,编译会自动加以处理,显式调用处理必须将名字与编译器转换后的名字一致。
所以,我常用老式的。DEF导出,以确保导出函数名不会被编译器改变。
cboy2wzhx
2003-06-05
打赏
举报
回复
代码很简单,可以描述如下 :
其中main.h中声明了int __declspec(dllexport) MyApi();
#include <windows.h>
#include "main.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
int __declspec(dllexport) MyApi()
{
return 0;
}
cboy2wzhx
2003-06-05
打赏
举报
回复
GetLastError()返回6
请大家看清楚再回答啊
DLL是我自己写的,可以保证函数存在
而且隐式调用没有一点问题(不存在导出函数写错的问题)
只在显式调用中有问题
要是这么低级的问题,就不来请教各位高手了
难道没有一个高手知道么???
windows_editor
2003-06-05
打赏
举报
回复
extern "C" __declspec(dllexport) int MyApi()
NowCan
2003-06-04
打赏
举报
回复
估计又是函数名称被编译器改了。
同意楼上
AlvaChin
2003-06-04
打赏
举报
回复
GetLastError看看是什么错误阿。
另外用Dependience看看DLL中是否有你调用的函数。
可能的话,把源代码贴上来看看阿。
加载更多回复(4)
HTML(3):IE浏览器编程
T我所写的一个程序中有这样一个功能:用户选取了ie浏览器中的一段文字copy到剪贴板,我的程序从剪贴板中取出文字并显示在edit框中,这在中文系统下没有任何
问题
,而当程序运行在英文日文98下时,ie中的中文字符从剪贴板...
HTML编程3
T我所写的一个程序中有这样一个功能:用户选取了ie浏览器中的一段文字copy到剪贴板,我的程序从剪贴板中取出文字并显示在edit框中,这在中文系统下没有任何
问题
,而当程序运行在英文日文98下时,ie中的中文字符从剪贴板...
HTML(3):IE浏览器编程 - vcmute的专栏 - CSDNBlog
T我所写的一个程序中有这样一个功能:用户选取了ie浏览器中的一段文字copy到剪贴板,我的程序从剪贴板中取出文字并显示在edit框中,这在中文系统下没有任何
问题
,而当程序运行在英文日文98下时,ie中的中文字符从剪贴板...
嵌入开发(WinCE)的一些经验
纵所周知,WindowsCE下编程99%的
问题
都和Unicode有关.比如文件编辑,一般都保存为Ansi格式;无线通讯中控制Modem需要发送的AT指令,必须是Ansi格式;网络通讯中,PC端一般都是Ansi的,为了和PC上协议兼容,在WindowsCE中必须...
Cognos应用
PPES常见
问题
整理 1. 什么是PPES?PlowePlay Enterprise Server 2. Cognos服务器移植后PlowePlay Enterprise Server打不开了拒绝访问(Access is denied)这是新装的Cognos服务器,将原先服务器上的cer1/bin下执行...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章