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