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

BCB的EXE能否静态调用子目录上的DLL

2013-01-08 
BCB的EXE能否静态调用子目录下的DLL?现在由于某种需求,DLL不能和EXE放在一个目录下;也不希望将DLL放在Syst

BCB的EXE能否静态调用子目录下的DLL?
现在由于某种需求,DLL不能和EXE放在一个目录下;也不希望将DLL放在System32目录下。
并且之前DLL都是静态调用使用的,现在问题是能否不改变调用方式就通过建立一个子目录方法
让DLL和EXE不在同一目录,并且也可以静态调用。
[解决办法]
设置高级系统设置中的 Path,增加一个目录行吗?
[解决办法]
把你的dll用implib生成lib放置在C:\Program Files\Borland\CBuilder6\Lib目录下
[解决办法]
Project->Options打开Dirctories/Conditionals选项Library path新增一个制定路径

[解决办法]
添加这个..
#pragma comment(lib, "C:\Documents and Settings\EMI-TE\桌面\hhh\lib\AddDll.lib")
[解决办法]

引用:
我试过了的,还是不行啊!
你的可以不会是DLL放在SYSTEM32下了吧



#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#pragma comment(lib, "C:\Documents and Settings\EMI-TE\桌面\hhh\lib\AddDll.lib")
//---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"


TForm1 *Form1;
extern "C" __declspec(dllimport) int __stdcall add(int x,int y);
//---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Edit1->Text=add(2,3);
}

我用BC6验证的,其他路径没放置调用的lib
[解决办法]
lib文件放在什么地方,只在编译期有意义。编译完成后,lib文件就没用了。

楼主的需求,又不允许更改path,实现有难度
[解决办法]
引用:
引用:
引用:
我试过了的,还是不行啊!
你的可以不会是DLL放在SYSTEM32下了吧



#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#pragma comment(lib, "C:\Documents and Settings\EMI-TE\桌面\……




我没有添加这路径到工程,只是编译时,加入了这个路径#pragma comment(lib, "C:\Documents and Settings\EMI-TE\桌面\hhh\lib\AddDll.lib")
按照妖哥说的,编译后再改路径我也不会..
[解决办法]
编译时这个lib文件放在什么地方都可以。编译完lib就没用了。运行时只按固定的几个目录去找dll,找不到就报错。

热点排行