如何在VC.NET程序里面调用VC.NET写的DLL?

yux007 2005-01-08 10:37:30
先是用VC.NET写了一个DLL,不知道如何在另外的工程里面调用里面的东西,麻烦说的详细一些,第一次做VC.NET的项目,先谢谢了
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2005-01-11
  • 打赏
  • 举报
回复
在工程的引用里添加这个.dll文件

然后再你程序的开头引用下,就可以了。
somedummy 2005-01-11
  • 打赏
  • 举报
回复
隐式加载直接包含正确的头文件,然后指定正确的lib文件就可以了
yux007 2005-01-11
  • 打赏
  • 举报
回复
看了些资料,我想应该是托管的dll
yux007 2005-01-10
  • 打赏
  • 举报
回复
to somedummy(某人马甲) :
隐式加载步骤如何?
somedummy 2005-01-10
  • 打赏
  • 举报
回复
托管的还是非托管?

对于非托管的dll,可以显式加载也可以隐式加载,不知道楼主想用哪一种?上面给出的方法是显式加载的代码,隐式加载更加简便一些。只要包含了头文件,链接的时候指定了链接库就可以了(CRT其实绝大部分也是通过dll调用的)
xwdd129 2005-01-09
  • 打赏
  • 举报
回复
先引用:
#using <dllname.dll>

再使用命名空间:
using namespace dllname;
Henry0 2005-01-08
  • 打赏
  • 举报
回复
这儿有些资料,希望对你有用:


DLL的调用
加载DLL时,Windows寻找相应DLL的次序如下:
?.当前工作盘。
?Windows目录;GetWindowsDirectory( )函数可提供该目录的路径名。
?Windows系统目录,即System子目录;调用GetSystemDiretory( )函数可获得这个
目录的路径名。
?DOS的PATH命令中罗列的所有目录。
?网络中映象的目录列表中的全部目录。

DLL模块中输出函数的调用方法:
不论使用何种语言对编译好的DLL进行调用时,基本上都有两种调用方式,即静态调
用方式和动态调用方式。静态调用方式由编译系统完成对DLL的加载和应用程序结束
时DLL卸载的编码(如还有其它程序使用该DLL,则Windows对DLL的应用记录减1,直
到所有相关程序都结束对该DLL的使用时才释放它),简单实用,但不够灵活,只能
满足一般要求。动态调用方式是由编程者用API函数加载和卸载DLL来达到调用DLL的
目的,使用上较复杂,但能更加有效地使用内存,是编制大型应用程序时的重要方
式。具体来说,可用如下的方法调用:
?.在应用程序模块定义文件中,用IMPORTS语句列出所要调用DLL的函数名。如:
IMPORTS MEMORYDLL.MemoryRead
MEMORYDLL.MemoryWrite
?让应用程序运行时与DLL模块动态链接



先用LoadLibrary加载DLL,再用GetProcAddress函数检取其输出函数的地址,获得
其指针来调用。如:
HANDLE hLibrary;
FARPROC lpFunc;
int PortValue;
M
hLibrary=LoadLibrary("PORTDLL.DLL"); //加载DLL
if(hLibrary>31) //加载成功
{
lpFunc=GetProcAddress(hLibrary,"PortIn"); //检取PortIn函数地址
if(lpFunc!=(FARPROC)NULL) //检取成功则调用
PortValue=(*lpFunc)(port); //读port端口的值
FreeLibrary(hLibrary); //释放占用的内存
}

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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