CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  游戏开发

各位高手救救我,关于类封装在动态联接库的问题。

楼主dreamliar2006()2006-03-02 10:42:49 在 专题开发/技术/项目 / 游戏开发 提问

 
          我现有的知识是通过以下的方法进行封装。  
   
                    #include   "classH.h"  
                    BOOL   WINAPI   DLLMain(HINSTANCE   hInst,DWORD   dwReason,LPVOID   lpReserved)  
                    {  
                                      return   0;  
                    }  
                    IDXClass*   iGetIDX()  
                    {  
                                      static   CDXUT   newIDXClass;  
                    return   &newIDXClass;  
                    }  
   
          通过以下方法进行调用。  
                    typedef   IDXClass*   (iGetIDX)();  
                    HMODULE   HmyDX;  
                    HmyDX=LoadLibrary("CDX_DLL.dll");  
                    iGetIDX*   lp=(iGetIDX*)GetProcAddress(HmyDX,"iGetIDX");  
  myDX=(*lp)();  
   
          但是我发现有个问题,这样的类只有一个对象实体(可能是因为static造成的,但是不用静态修饰就会在过程执行后消失)。我用多个模块句柄调用也是同一个内存地址。  
           
          当我需要多个类的对象的时候就无法实现了(比如多个模型,多个灯光)。各位高手能不能告诉我一个可以多对象的封装办法和调用方法。不胜感激。  
           
          如果各位大侠实在太忙,给我伪代码,或者代码让我自己参透也行。  
  问题点数:100、回复次数:4Top

1 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2006-03-02 10:56:23 得分 60

一个dll在不同的进程下是独立的对象  
  在同一个进程下只有一个对象实体  
   
  不用静态的,你new出来返回呗,然后自己释放Top

2 楼popy007(Twinsen)回复于 2006-03-02 13:02:31 得分 40

用new分配,或者:      
   
  #include   "classH.h"  
  BOOL   WINAPI   DLLMain(HINSTANCE   hInst,DWORD   dwReason,LPVOID   lpReserved)  
  {  
      return   0;  
  }  
  const   int   MAX_IDX   =   100;  
  static   CDXUT   newIDXClass[MAX_IDX];  
  static   int   counter   =   0;  
   
  IDXClass*   iGetIDX()  
  {        
          if(counter++<MAX_IDX)  
                return   &newIDXClass[i];  
          return   0;  
  }Top

3 楼dreamliar2006()回复于 2006-03-02 16:59:12 得分 0

二位高手,简直就是我的救命父母。   太感谢了。Top

4 楼dreamliar2006()回复于 2006-03-02 17:01:55 得分 0

二位的方法我都try了一下,真的可以哦。    
  那只能按照系统耗费给分了,两位高手不回怪罪我吧。Top

相关问题

  • 类的封装
  • 求Base64封装类
  • vb类封装的问题
  • 关于类库封装
  • Integer封装类的问题!
  • 求助:用ActiveX封装Socket类
  • 如何把类封装在dll中
  • 我想要一个封装的socket类
  • 把类封装成文件的问题
  • 如何理解类的封装性?

关键词

  • dll
  • igetidx
  • idxclass
  • hmydx
  • newidxclass
  • 类
  • 调用
  • 对象
  • 方法
  • static

得分解答快速导航

  • 帖主:dreamliar2006
  • happy__888
  • popy007

相关链接

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

广告也精彩

反馈

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