首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

运行时dll出错,然后在调用dll文件时就会提示 找不到此文件,咋回事呀

2012-03-17 
运行时dll出错,然后在调用dll文件时就会提示 找不到此文件,怎么回事呀?这是主程序里调用dll的函数。C/C++ c

运行时dll出错,然后在调用dll文件时就会提示 找不到此文件,怎么回事呀?
这是主程序里调用dll的函数。

C/C++ code
bool __fastcall TForm1::RunExFile(char * dllname, char * user) // 外部扩充调用{       /* 入口格式:调用dll文件名,传递用户名 */    bool OK;    if(FileExists(dllname))    {        boolean PrevValue = IsLibrary;  //C++ Builder - Exception 'Need call dxFinalizeGDIPlus before free library!' when using DX components in a DLL        hInstance=LoadLibrary(dllname);        if(hInstance)        {            (FARPROC &) DllWin=GetProcAddress(hInstance,"DllWin");            if(DllWin)            {                OK=DllWin(user);            }            else            {                ShowMessage("  不能找到函数入口,请重新安装本程序。");            }                       }        else        {            ShowMessage("不能载入DLL文件,请重新安装本程序。");        }        FreeLibrary(hInstance);        IsLibrary = PrevValue; //C++ Builder - Exception 'Need call dxFinalizeGDIPlus before free library!' when using DX components in a DLL    }    else    {        ShowMessage("  相应模块文件丢失,请重新安装本程序。");    }    return OK;}//---------------------------------------

调用语句是 RunExFile("dll1.dll","go");

调用之后,dll1.dll(带窗口)运行时报错了,关闭dll窗口后,再次从主窗体调用dll文件,就会报错“相应模块文件丢失,请重新安装本程序。”,也就是说FileExists函数找不到dll文件,实际上dll文件就乖乖地待在主程序的目录里呢。

这是怎么回事?为什么找不到dll文件了,明明存在的。

[解决办法]
用绝对路径试试
[解决办法]
用绝对路径或者在使用前先用SetCurrentDir设置当前路径。
[解决办法]
+1
探讨
用绝对路径试试

[解决办法]
探讨

用绝对路径或者在使用前先用SetCurrentDir设置当前路径。

热点排行