C++ Builder编译错误问题:SelectDirectory

packager 2000-04-07 11:53:00
我要到了C++ Builder的函数SelectDirectory,
但编译时出现错误,说找不到这个函数的lib,无法link,错误信息如下:
[Linker Error] Unresolved external '__fastcall Filectrl::SelectDirectory(System::AnsiString&, System::Set<Filectrl::TSelectDirOpt, 0, 2>, int)' referenced from E:\BORLAND\CBUILDER4\PROJECTS\MAIN.OBJ.
我想可能应该要在工程还得加入包含SelectDirectory的lib库.
请问这个问题如何解决?
...全文
457 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahao 2000-04-07
  • 打赏
  • 举报
回复
#include <FileCtrl.hpp> // 加上他
void __fastcall TForm1::Button1Click(TObject *Sender)
{
const SELDIRHELP = 1000;
AnsiString Dir = "C:\\Program Files";
if (SelectDirectory(Dir, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt,SELDIRHELP))
Label1->Caption = Dir;
}
packager 2000-04-07
  • 打赏
  • 举报
回复
大家可以也试一下,把project的option的package里的build with runtime package这项取消,也写个SelectDirectory函数,编译肯定也通不过。
现在不得不选中这项缺省配置,才能编译通过,否则就会link error.
可是这样的结果是,我在别的未装C++Builder的机器运行这个程序,还必须附带vcl50.bpl和vclx50.bpl。
其实vcl50.bpl和vclx50.bpl就是动态连接库,我如果有办法在编译我的程序时
按静态连接,应该可以不需要这两个库的。我再试试。



packager 2000-04-07
  • 打赏
  • 举报
回复
我现在恢复了一项缺省配置,问题得到解决了。
在project的option的package里,我点中build with runtime package这项,就可以
了。我原先取消这项的原因是希望编译出来的可执行文件在发布时不需要c++ builderd的runtime package,现在不得不选中这项。
Wingsun 2000-04-07
  • 打赏
  • 举报
回复
可能是你的路径设置不对
packager 2000-04-07
  • 打赏
  • 举报
回复
我的源文件中有加上 #include <FileCtrl.hpp>
其实如果没有这句,那在compile时就会出现compile error,错误应该是"SelectDirectory函数未声明".
现在我的错误是link error,就是编译器在最后连接obj时,因为找不到含有SelectDirectory的机器代码obj,出现了link error,无法将obj连接成可执行文件.
我想也许是我把项目的某些配置改了,以致编译器找不到所需要的库.现在我打算重新按
缺省配置来编译.

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧