bcb如何调用lib中类的函数?已经静态添加入工程 100分送上
手头上有一个项目,要求做一个B/S结构的的系统,WEB页面调用硬件读取客户端的数据采集。供应商只提供了几个dll文件。
我想通过bcb创建一个控件,这个控件调用外部dll(已经转成lib并且添加入当前工程)中的类的函数。
然后打包成cab。客户端用javascript来实现调用。
目前做到:已经新创建一个工程并且也将相关的dll转成lib文件,并添加入当前工程,不知道如何调用lib中的类函数。
lib中的文件是一个个类,和类的函数。
1:如有相关类似的源码的不知道能否提供。
2:因为对c++不是很熟悉,请详细写明哪里调用,如何申明,最好能提供一段代码。
[解决办法]
一般来说dll都会有接口函数提供给你的,不需要去转什么,甚至dll里的类,还有实例的属性方法什么的你都不用去关心
你应该叫供应商提供你一个dll相关的函数列表,然后在程序里去调用这个dll,并使用相关的函数
[解决办法]
如果供应商提供了dll给你 那肯定是有dll内容的函数什么的让你直接调用的
你问一下他们 要一份dll里函数的说明然后根据需求去调用这个dll
比如 他告诉你dll里有个函数叫 Show_Message 功能就是弹出一个提示框
那么在.h文件里定义
/* DLL */
HINSTANCE dll_show_message;
/* DLL Define */
Word (__stdcall *Show_Message)(int, String, String *, int, int, String);
在.cpp文件这个form的构造函数里去载入这个dll
try
{
this->dll_show_message = LoadLibrary("show_message.dll");
(FARPROC&)Show_Message = GetProcAddress(this->dll_show_message, "Show_Message");
if (!(this->dll_show_message && Show_Message))
ShowMessage("Load dll file show_message.dll failed");
}
catch (...)
{
FreeLibrary(this->dll_show_message);
}
在cpp文件这个form的析构函数里去delete
FreeLibrary(this->dll_show_message);
这样在其他地方就可以直接用这个dll里的函数比如Show_Message(......);
所以既然他们提供了dll,那就不用自己去往工程里面加什么东西,直接去调用dll相关函数去实现一些功能