int main()
{
LoadLibrary("mydlls\\engine.dll");
return 0;
}如题。
{
LoadLibrary("mydlls\\engine.dll");
return 0;
}如题。
解决方案 »
- MessageBox在VS6.0中的参数与在VS2005中的参数不同??急!急!急!
- 如何获得子窗口句柄?
- 请问如何在VC的调试环境中,察看STL中的数据结构的值?
- 如何释放已经创建的edit控件
- 没分提问啦,给人家偷分啦,大家有分的给点分给我吧。
- 控制台程序如何知道点击了CMD窗口的关闭按钮?
- 弱弱的问,什么是完成端口模式,知道给我解释一下!
- 在画图问题中的简单问题
- 为何使用TrackMouseEvent函数捕获鼠标消息时会在Release版本中出错异常退出?
- 请给看看这是一本什么书
- 可以发布悬赏么?
- 关于函数GetNamedSecurityInfoEx()和SetNamedSecurityInfoEx()
csdn太苛刻了,不像gameres可以自由修改
loadlibary();
freelibary();就是动态啊。
但我的程序既链接了lib,又执行了LoadLibrary(),该怎么算呢?PS:我开始为了解决能够加载指定目录下的dll文件,便改用动态加载方式(LoadLibrary()),但为了省事,我查到了可以延迟加载DLL,然后我不需要做任何函数地址获取,而只需要在原先静态链接方式基础上,再加上一条语句:LoadLibrary(),以及在项目属性中设置一下dll延迟加载就完事了。
并且通过验证,我的dll的确是通过LoadLibrary()加载出来的,因为一般的静态链接,只能加载exe所在目录的dll,而不能加载其他目录下的dll。。
但问题是,我要加载的dll不在exe的目录下,而是在其他目录。我尝试过,将延迟加载的dll设成我指定的路径,但是运行仍然加载不了,提示找不到dll。。
你可以setdlldirectory
恩,这样就OK了.谢谢..int main()
{
// HINSTANCE hDll = LoadLibrary("dll\\MyDll.dll");
// if (hDll == NULL)
// {
// MessageBoxA(0, "dll加载失败", 0, MB_OK);
// return 0;
// } SetDllDirectoryA("dll"); DLLTest();// FreeLibrary(hDll); return 0;
}
再请问一下,延迟加载dll的方式是静态链接是吧??
延迟加载dll 属于 半静态 半动态
因为用延迟加载就需要delay-load helper function,即延时加载管理器,它是需要静态链接的,
要加载的dll则动态的。
会直接调用dllmain函数
#pragma comment(lib,"___.dll")
否则为静态加载。分那么细没啥意义