当前位置: 代码迷 >> VC >> 山穷水尽中求牛人指路——vs2005 怎么在C++工程中调用第三方DLL
  详细解决方案

山穷水尽中求牛人指路——vs2005 怎么在C++工程中调用第三方DLL

热度:765   发布时间:2013-02-25 00:00:00.0
山穷水尽中求牛人指路——vs2005 如何在C++工程中调用第三方DLL
如题,自己平常用vs20005写C#代码,今天却需要写一个调用ICE中间件的C++的工程。
其中需要调用一个动态链接库Ice.dll,不知道如何将这个dll引入工程中。
还请各位大虾不吝赐教。在下感激不尽!

------解决方案--------------------------------------------------------
包含头文件,把Ice.dll放到编译目标文件夹下就可以了
------解决方案--------------------------------------------------------
隐式链接
#pragma comment(lib,"MyDll.lib")
extern "C"_declspec(dllimport) int Max(int a,int b);
extern "C"_declspec(dllimport) int Min(int a,int b);

void main()
{
 int a;
 a=min(8,10)
 printf("比较的结果为%d\n",a);
}


显式链接
void main(void)
{
 typedef int(*pMax)(int a,int b);
 typedef int(*pMin)(int a,int b);
 HINSTANCE hDLL;
 PMax Max
 HDLL=LoadLibrary("MyDll.dll");//加载动态链接库MyDll.dll文件;
 Max=(pMax)GetProcAddress(hDLL,"Max");
 A=Max(5,8);
 Printf("比较的结果为%d\n",a);
 FreeLibrary(hDLL);//卸载MyDll.dll文件;
}
------解决方案--------------------------------------------------------
楼上的方法就可以了
还有项目管理器中也可以引用Dll
------解决方案--------------------------------------------------------
HMODULE m_hLib;
m_hLib = ::LoadLibrary(m_strLibName.c_str());
------解决方案--------------------------------------------------------
4#的隐式链接做如下修改
#pragma comment(lib,"MyDll.lib")
extern "C"_declspec(dllimport) int Max(int a,int b);
(dllimport)-->(dllexport)

6# 的显示链接也可以
------解决方案--------------------------------------------------------
解决了吗?怎么做的
  相关解决方案