如何使用DLL中的类?

2024-02-17

我可以将类放入 DLL 中吗? 我写的类是这样的:

    class SDLConsole
{
      public:
             SDLConsole();
             ~SDLConsole(){};
             void getInfo(int,int);
             void initConsole(char*, char*, SDL_Surface*, int, int, int);
             void sendMsg(char*,int, SDL_Surface*);
             void cls(SDL_Surface*);

      private:
              TTF_Font *font;
              SDL_Surface *consoleImg;
              int width, pos, height, line, size, ctLine;
              SDL_Surface* render(char*,int);

};

我知道如何加载 DLL 并使用 DLL 中的函数,但如何将类放入 DLL 中?非常感谢。


如果您使用运行时动态链接(使用 LoadLibrary 加载 dll),则无法直接访问该类,您需要为您的类声明一个接口并创建一个返回此类实例的函数,如下所示:

class ISDLConsole
{
  public:             
         virtual void getInfo(int,int) = 0;
         virtual void initConsole(char*, char*, SDL_Surface*, int, int, int) = 0;
         virtual void sendMsg(char*,int, SDL_Surface*) = 0;
         virtual void cls(SDL_Surface*) = 0;
 };

 class SDLConsole: public ISDLConsole
 {
    //rest of the code
 };

 __declspec(dllexport) ISDLConsole *Create()
 {
    return new SDLConsole();
 }

否则,如果您在加载时链接 dll,则只需使用icecrime 提供的信息即可:http://msdn.microsoft.com/en-us/library/a90k134d.aspx http://msdn.microsoft.com/en-us/library/a90k134d.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用DLL中的类? 的相关文章

随机推荐

  • 如何用IPC::Open2过滤大量数据?

    我的任务是使用外部实用程序 addr2line 从 perl 脚本中过滤一些数据 数据量相当大 我需要打印大量数据stdin程序并读回大量数据 来自stdout程序到我的脚本中 现在我这样做IPC Open2 但我不混合阅读和写作 这合法吗
  • 设置控件Parent属性和使用Controls.Add()之间的区别?

    更具体地说 这些陈述是 ownerControl GroupBox1 Controls Remove childControl ownerControl Controls Add childControl 相当于 childControl
  • 在本地主机上托管 git 服务器

    我的公司没有中央 git 服务器 也不允许我使用 BitBucket 等 无论如何我可以使用我的本地主机作为remote 编辑 我在 Windows 机器上 本地目录的工作方式与远程存储库 URL 类似 因此只要您是唯一使用该存储库的人 基
  • shell 脚本错误期待“do”

    bin sh while true do echo WTF done 这给出了语法错误 语法错误 意外的文件结尾 需要 do 我也尝试过 bin sh while do echo WTF done 我怀疑行结尾 Try hexdump C
  • iOS 模拟器应用程序的终端命令行调试?

    是否可以在 Mac OS X 下的终端命令行中使用 GDB 或 LLDB 来调试在 iOS 模拟器上运行的应用程序 例如 不是从 Xcode 的 GUI 或控制台内部 而是使用外部命令行或进程 如果是这样 怎么办 您需要在模拟器的 Spri
  • MVC-错误消息

    我正在创建 MVC Web 应用程序 我应该在 MVC 模型 视图 控制器 的哪一部分保存错误消息 这些消息可能会出现在出现问题的地方并且用户应该阅读它们 目前情况 Model function f data error Error mes
  • 为 C# MVC ASP.NET 应用程序创建的默认数据库在哪里?

    我在引导程序上使用登录 注册脚本安装了新的 MVC ASP NET 应用程序 它工作正常 但我不知道该应用程序的默认数据库在哪里 我的 App Data 文件夹是空的 有人可以告诉我表单注册的数据保存在哪里吗 这将存储在 Visual St
  • 何时在 Ansible 中使用 from_json 过滤器?

    我什么时候应该使用from json filter https docs ansible com ansible playbooks filters html filters for formatting data在安西布尔 我发现使用它有
  • Mod 重写查询参数验证和阻止也请求 url 阻止

    在我的网站上 只允许很少的查询参数 但是 一些扫描仪或黑客试图使用我的 php 应用程序不支持的唯一参数访问 url 我可以通过验证在 php 应用程序级别阻止它们 GET参数 但我的服务器正在加载 所以如果参数无效 我想显示 403 查询
  • 如何为 flex: 0 0 25% 的弹性项目添加 1px 边距?

    我正在使用 Flexbox 测试几种不同的布局 但遇到以下问题 我有一个设置了弹性项目的图片库flex 0 0 25 我想给它们添加 1px 边距 因为 1 太大了 所以我想知道在这种情况下我应该做什么 我附上下面的例子 foto cont
  • 使用 sshj java 库在我的 Amazon EC2 机器上执行“sudo”命令

    我正在尝试使用 SSHJ 库在我的 Amazon EC2 计算机上执行 sudo 命令 https github com shikhar sshj https github com shikhar sshj 不幸的是 我没有收到服务器的任何
  • 使用 crypto-js 和十六进制编码对字符串进行加密,使其 url 友好

    我在用crypto js by brix https github com brix crypto js 我下面有这个函数来处理纯文本的加密 import CryptoJS from crypto js import AES from cr
  • Python 方法 *参数* 的双下划线

    我知道双下划线对于 Python 类属性 方法意味着什么 但是它对于方法参数意味着什么吗 看起来您无法将以双下划线开头的参数传递给方法 这很令人困惑 因为您可以对正常功能执行此操作 考虑这个脚本 def egg a None return
  • 如何使用多个 next.js 插件(typescript 和 stylus)

    我尝试使用打字稿和手写笔构建 next js 项目下一个撰写插件 https www npmjs com package next compose plugins 我的 next config js const withPlugins re
  • Laravel Carbon 从当前日期减去天数

    我正在尝试从模型 用户 中提取对象 其created at日期已超过从今天起 30 天 Carbon now gt 我想要 gt Carbon now 30 天 users Users where status id active gt w
  • 对日期和时间值进行排序

    简而言之 我有一个不同日期和时间的字符串数组 每个元素的格式如下 2015 08 27T22 24 31 903 即 YYYY MM DDT时 分 SS MMM 我正在对它们进行排序 是否有默认方法可用于对此格式进行排序 我现在正在做的是将
  • 是否有相当于 Backbone.js 路由器的 Ember.js 用于历史记录和哈希更改?

    在 Backbone js 中 您可以使用路由器绑定到 个更改以在单页 HTML5 应用程序中导航 Ember js 是否有等效项 或者我是否错过了其设计的一些基本内容 有计划为 Ember 编写一个路由器 它可能会与 Ember Stat
  • 如何隔离 Jenkins 管道 Groovy 共享库类加载器?

    我有一个 Groovy 库作为全局共享库提供 package com example Grab group org apache httpcomponents module httpclient version 4 5 3 import o
  • foreach 列表项的逆序

    我想颠倒此代码列表项的顺序 基本上 这是从最旧到最近的一组年份 我正在尝试扭转该输出 倒着走 如果您正在寻找纯粹的 PHP 解决方案 您也可以简单地从列表中向后计数 从前到后访问它
  • 如何使用DLL中的类?

    我可以将类放入 DLL 中吗 我写的类是这样的 class SDLConsole public SDLConsole SDLConsole void getInfo int int void initConsole char char SD