如何使用 C++ 在 OS X 中打开“打开文件”对话框?

2024-02-09

我正在开发一个使用 OpenGL 和 C++ 的应用程序,该应用程序解析文件中的一些结构化输入并以图形方式显示它。我想在应用程序加载时启动一个“打开文件”对话框,以允许用户选择他们想要显示的文件。我无法在网络上找到我需要的东西。有没有办法在 C++ 中实现这一点?如果是这样,怎么办?先感谢您。


你有两种选择,一种是快速的,一种是好的:

  • 快速且非常简单,使用导航服务 http://developer.apple.com/legacy/mac/library/documentation/Carbon/Conceptual/ProvidingNavigationDialogs/nsx_tasks/nsx_tasks.htmlCarbon 的框架和NavCreateGetFileDialog()。你会很快完成,而且你几乎不需要学习任何新东西,但是你的代码不能在 64 位(Apple 正在推动每个人使用)中运行,并且你必须链接 Carbon 框架。导航服务是正式删除 http://developer.apple.com/mac/library/documentation/Carbon/Conceptual/Carbon64BitGuide/HIToolboxChanges/HIToolboxChanges.html#//apple_ref/doc/uid/TP40004381-CH4-SW5在 64 位中,并且通常会被弃用(尽管我预计它会在 32 位中停留很长一段时间)。

  • 第一次做时需要做更多的工作(因为你需要学习一些 Objective-C),但更强大且完全支持,总结NS开放面板 https://developer.apple.com/documentation/appkit/nsopenpanel/在 Objective-C++ 类中并将其公开给您的 C++。这是我的包装 C++ http://robnapier.net/blog/wrapping-c-take-2-1-486模式,只是向后。如果您这样做时遇到问题,请留言,我会尽力加快在其上发布博客条目的速度。

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

如何使用 C++ 在 OS X 中打开“打开文件”对话框? 的相关文章

  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • 需要 grunt@>=0.4.0 的对等点

    为什么我会收到以下错误 我的 grunt 版本是 gt v0 4 0 npm install grunt contrib concat save dev 未满足的对等依赖 grunt gt 0 4 0 错误信息 Projects Hartz
  • Kotlin 本机互操作链接器找不到框架

    我正在尝试在 Kotlin 多平台项目中使用 cocoapods 框架 所以我 将框架添加到 Pods 文件中 运行 pod install created def file added cinterop配置在build gradle gr
  • 不使用指针迭代 C 风格数组

    我正在学习指针算术 并且有一段代码在相当长的一段时间内给我带来了错误 任何帮助将不胜感激 我找不到它 int arr 1 2 3 4 5 for int i 0 i lt 5 i cout lt lt arr arr cout lt lt
  • 匹配标准 10 位电话号码的正则表达式

    我想为支持以下格式的标准美国电话号码编写正则表达式 其中 表示任意数字 到目前为止我想出了以下表达方式 1 9 d 2 d 3 d 4 d 3 s d 3 d 4 1 9 d 2 s d 3 s d 4 1 9 d 2 d 3 d 4 分别
  • 在Python中初始化固定大小的数组[重复]

    这个问题在这里已经有答案了 我想知道如何初始化一个数组 或列表 尚未填充值 以具有定义的大小 例如在 C 中 int x 5 declared without adding elements 我如何在 Python 中做到这一点 您可以使用
  • 给定组合时如何计算索引(字典顺序)

    我知道有一种算法允许给定数字组合 无重复 无顺序 计算字典顺序的索引 这对于我的应用程序加快速度非常有用 例如 combination 10 5 1 1 2 3 4 5 2 1 2 3 4 6 3 1 2 3 4 7 251 5 7 8 9
  • Ember 数据模型重新加载导致 {{each}} 中的项目被删除/插入回来 - 丢失当前状态

    我怎样才能防止itemView在迭代控制器时被删除并重新渲染回原位arrangedContent 如果观察到的模型的属性没有改变值 下面是使用博客文章的简短版本App Post作为示例模型 控制器 sortProperties create
  • 使用“C”执行 API 将 sqlite3 表导出到文件中

    我在 fedora 14 中使用 sqlite3 版本 3 6 23 1 我可以使用这样的命令提示符将表导出到文件中 sqlite3 data db sqlite gt output sample txt sqlite gt select
  • 如何使 TeamCity 构建出现在 TFS 构建资源管理器中?

    我们使用 TFS 2010 进行源代码控制和项目管理 使用 TeamCity 6 0 执行构建和构建报告 测试人员的 CI 和日常部署 在 TeamCity 中设置 TFS 源标签以匹配内部版本号非常简单 但我找不到将其链接回 TFS Bu
  • 使用 osmosis 将 POSTGIS 表转换为 .OSM

    我正在使用 osmosis 0 42 和 PostGIS 2 0 1 并且我正在尝试将一些 postGIS 表导出到 OSM xml 文件 我使用 read pgsql 命令从 postgis 读取 而不是 read apidb 因为它在连
  • 自我类型和特质子类有什么区别?

    特质的自我类型A trait B trait A this B gt 说 A不能混合到一个不扩展的具体类中B 另一方面 如下 trait B trait A extends B 说 任何 具体或抽象 类混合A也会混入B 这两个说法不是说的是
  • 如何基于一个 xcode 项目构建精简版和完整版 iPhone 应用程序?

    我不想维护两套代码 我只需要限制 Lite 版本中的一些功能并在其上添加一些广告即可 怎么做 创建多个目标 您可以通过右键单击目标并选择获取信息来改变构建配置 从那里 你可以做一些事情 比如改变Info plist文件它正在查看 执行诸如将
  • 我们可以在 PWA 应用程序中使用 SQLite 数据库吗

    我正在创建渐进式网络应用程序应用程序 我想将用户信息存储在本地设备中 那么 我该如何做到这一点 如何存储用户登录信息 以便他不必一次又一次登录 浏览器没有 SQLite 您可以使用更接近的方法索引数据库 https caniuse com
  • asm编译器中的二进制表达式

    我正在尝试使用逻辑和符号 执行 if 语句 这是我想要做的 asm字节码中的 y堆栈具有值0和1 我想得到结果 在我们的例子中 逻辑与 不会出现在 if 语句中 我已经尝试过 Opcodes IFEQ 和 Opcodes IFNE 指令 但
  • Chain animator设置 android 动画

    对于android新手 我想做一些流畅的动画 我的设备上有一个包含效果的文件 每个效果都是一个动画 该文件告诉我何时播放效果以及效果持续时间 问题是我无法链接 animatorSet dynmacily AnimatorSet mainAn
  • 限制使用 git log --decorate 显示的引用

    我目前使用的主存储库有 3 个标准遥控器 本地备份 我的开发合作伙伴的工作站和托管存储库 我们有 3 或 4 个分支大部分时间都处于活动状态 其中一个是 master 我全天定期监控分支机构 使用 git log graph oneline
  • jquery 摇动效果和 margin-auto

    有一点烦恼这个 震动效果示例 http jsfiddle net PHPsycho mwVkm 1 在 Firefox 中如果我省略该行 this css margin left this position left 然后该框会向左移动而不
  • ` throw 'foo'` 、 ` throw Error('foo')` 、 `throw new Error('foo')` 之间有什么区别?

    我见过 3 种在 JavaScript 中引发错误的不同方式 throw message throw Error message throw new Error message 它们之间有什么区别 注意 我知道类似的问题 1 https s
  • 读取字节数限制

    Does fread一次可以读取的字节数有限制吗 或者我可以读取我想要添加到指针中的任何尺寸 例如 我可以使用fread读取一次50MB的文件并将其装入char指针吗 理论上 是的 它可以读取任意数量的字节 最多可达size t 这是一个u
  • 如何使用 C++ 在 OS X 中打开“打开文件”对话框?

    我正在开发一个使用 OpenGL 和 C 的应用程序 该应用程序解析文件中的一些结构化输入并以图形方式显示它 我想在应用程序加载时启动一个 打开文件 对话框 以允许用户选择他们想要显示的文件 我无法在网络上找到我需要的东西 有没有办法在 C