CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  游戏开发

sos!有关dll问题。

楼主fallleaf(没颜色的鱼)2001-09-17 15:14:29 在 专题开发/技术/项目 / 游戏开发 提问

各位朋友你们好!请教一下有关dll动态链的问题。如何创建一个动态链呢?在.cpp文件中如何书写呢?介绍一下相关的书籍,小女子也不胜感激!  
  问题点数:20、回复次数:7Top

1 楼atree(七心海棠)回复于 2001-09-17 15:24:32 得分 5

hehe.  
  正好我前不久刚刚看了下VC技术内幕中的关于dll的部分。  
  哈哈,真的是非常的简单,  
  我觉得dll就是一个编程的思想而已。  
  提供了一些供别人使用的函数,  
  嗯。你用vc创建一个动态连接库,选择   a   dll   that   exports   some   symbols.  
  看看那几个代码就知道了  
  一个小时就够明白了。  
  给我分啊。  
  我还没专家分呢  
  Top

2 楼jmylf(黄历上写着:驿马动,火逼金星,大利西方)回复于 2001-09-17 15:30:46 得分 2

很简单,只要指明呢要输出的函数和别名就可以了Top

3 楼fallleaf(没颜色的鱼)回复于 2001-09-17 16:09:13 得分 0

选择   a   dll   that   exports   some   symbols是什么意思Top

4 楼use_id(use_id)回复于 2001-09-17 16:22:26 得分 8

以下是我抄的笔记不知道你看得懂么。  
   
  生成DLL文件(MFC)  
   
  一、生成DLL文件(RegDll.dll)  
   
  extern   "C"   _declspec(dllexport)   double   AreaTriangle(double   a,double   b,double   c);  
  extern   "C"   _declspec(dllexport)   int   Display(int   n);  
   
  #include   "math.h"  
  extern   "C"   _declspec(dllexport)   double   AreaTriangle(double   a,double   b,double   c)  
  {  
  double   s,area;  
  s   =   1.0/2*(a+b+c);  
  area   =   sqrt(s*(s-a)*(s-b)*(s-c));  
  return   area;  
  }  
   
  extern   "C"   _declspec(dllexport)   int   Display(int   n)  
  {  
  return   n;  
  }  
   
  二、应用程序调用(显示链接)  
   
  HINSTANCE   hdll;  
  ......  
  hdll   =   LoadLibrary("RegDll.dll");  
  ......  
  FreeLibrary(hdll);  
  .......  
   
  typedef   double(*PROC1)(double,double,double);  
  PROC1   proc   =   (PROC1)GetProcAddress(hdll,"AreaTriangle");  
  double   data   =   (*proc)(20.0,30.0,40.0);  
  CString   str;  
  str.Format("AreaTriangle(20.0,30.0,40.0)=%f",data);  
  pDC->TextOut(20,20,str);  
   
  typedef   int(*PROC2)(int);  
  PROC2   proc2   =   (PROC2)GetProcAddress(hdll,"Display");  
  int   n   =   100;  
  (*proc2)(n);  
  str.Format("%d",(*proc2)(n));  
  MessageBox(str);  
   
   
   
   
  生成DLL文件(Win32   DLL)  
   
  一、生成DLL文件  
   
  文件Win32Dll.def  
  ;   Win32Dll.def   :   Declares   the   module   parameters   for   the   DLL.  
   
  LIBRARY             "Win32Dll"  
  DESCRIPTION     'Win32Dll   Windows   Dynamic   Link   Library'  
   
  EXPORTS  
          ;   Explicit   exports   can   go   here  
  Factor @1  
  文件Win32Dll.h  
  extern   "C"   long   Factor(int   n);  
  文件Win32Dll.c  
  extern   "C"   long   Factor(int   n)  
  {  
  int   i;  
  long   f   =   1;  
   
  for(i=1;i<=n;i++)  
  f   =   f*i;  
  return   f;  
  }  
   
  二、应用程序调用(隐式链接)  
   
  把生成的Win32Dll.h、Win32Dll.dll、Win32Dll.lib文件拷贝到应用程序工程中。  
  直接调用函式即可:  
  #include   "Factor.h"  
  ......  
  long   data   =   Factor(10);  
  CString   str;  
  str.Format("Factor(10)   =   %ld",data);  
  pDC->TextOut(20,20,str);  
  .......Top

5 楼use_id(use_id)回复于 2001-09-17 16:29:44 得分 2

上面“#include   "Factor.h"   应改为“Win32Dll.h"   抄笔记时大意了。Top

6 楼aawolf(羌狼)回复于 2001-09-18 09:20:52 得分 3

我只知道在C++   BUILDER下怎么做DLL,看看创世纪的C++BUILDRE就知道了,你用VC可以看看《WINDOWS程序设计》,解释挺详细的,用SDK的,最最基本的。Top

7 楼fallleaf(没颜色的鱼)回复于 2002-01-31 14:53:18 得分 0

谢谢各位,由于忙。迟迟没有感谢!问题解决。Top

相关问题

  • 有关DLL
  • 有关DLL
  • 有关DLL的
  • 有关static DLL和shared DLL得问题?
  • 有关DLL的使用
  • 有关DLL的用法
  • 有关dll中的form!!
  • 有关DLL的问题!
  • 有关dll的问题
  • 有关DLL的问题

关键词

  • win32
  • 文件
  • dll
  • vc
  • areatriangle
  • proc
  • hdll
  • double
  • dllexport
  • declspec

得分解答快速导航

  • 帖主:fallleaf
  • atree
  • jmylf
  • use_id
  • use_id
  • aawolf

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo