- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在这里遗漏了一些明显的东西。我正在使用 DJGPP C 编译器。我可以成功打开可执行文件,但不能打开其默认程序中的文件。
#include <stdio.h>
int main(void) {
char sys_cmd[100] = "C:\\WINDOWS\\system32\\Calc.exe";
system(sys_cmd);
system("\"C:\\TextFile.txt\"");
system("\"www.bbc.co.uk\"");
getch();
return 0;
}
运行此代码会使计算器启动。关闭计算器后,它会报告:
Bad command of file name
Bad command of file name
所以其他两个系统调用有问题。我尝试将“START”添加到系统调用中,但这并不能解决问题。刚刚搜索了我的 Windows 7 Pro 系统,它没有 START.EXE。添加“cmd.exe”只是启动 cmd,所以就好像没有发送任何参数一样。
我可以在 cmd 中正常输入“C:\TextFile.txt”,它会打开 notepad.exe,里面打开了 TextFile.txt。
无论如何,理想情况下我会使用比 system() 更安全的方法来执行此操作,但我还没有在 DJGPP 中看到任何 ShellExecute 示例。
最佳答案
您不会在 djgpp 中找到 ShellExecute,因为它只是 DOS,不会创建真正的 Windows 应用程序,因此无法访问 Windows Api 调用。
ShellExecute 将能够使用 Windows 注册表找出需要使用哪个应用程序来打开某个文件扩展名。
我不知道 exec() 是否能够做到这一点,但我有疑问。
对于非常旧的版本,存在一个交叉编译器,允许从 djgpp 编译的程序调用 windows api。但由于这是基于 2.9 版本的编译器:http://www.delorie.com/djgpp/v2faq/faq3_6.html这可以被认为是死胡同。
如以下评论中所述,您可以插入从 .txt 到记事本的静态映射。如果你必须支持很多扩展,你基本上有两个选择:
请注意,djgpp 已经过时并且不会收到 Gcc 收到的相同更新
“hack”是从您的 C 程序创建一个临时的 .cmd 或 .bat 并将您需要的文件的开始委托(delegate)给该批处理。
关于c - 在 DJGPP C 中使用 system() 打开通用文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31230386/
在 DOS 上使用 DJGPP 读取二进制文件时,此代码挂起。当进行 fread 调用时会发生这种情况。如果调用被删除,则程序成功运行。相同的代码在 Visual C++ 2008 中运行良好。有没有
最近我决定编写一些简单的 MSDOS 游戏,这会很有趣。不用说,我需要处理键盘事件的代码。 这是我想出的测试: int i, c = 0; for ( i = 0; i < 10; i++ ) {
我是 C 语言和编程的新手。此时我想使用 DJGPP 作为我的编译器。我该如何安装它?据我了解,这是多个文件。我似乎无法找到一个网站,该网站实际上拥有具有工作链接的文件。谢谢! 我使用的是 Windo
我正在尝试使用 djgpp-2 在保护模式下设置硬件中断处理程序用于编译 dosbox-0.74 .我猜这是可能的最小代码(定时器中断): #include #include #include
尝试使用 MinGW 和 NASM(以前称为 DJGPP 和 NASM)编译 C++ 内核项目。实际上也尝试过 Cygwin,结果完全相同: 首先,将 \DJGPP\bin 替换为 \MinGW\bi
在 djgpp 中使用 __MSDOS__ 是否足够,还是应该使用 __DJGPP__ 来代替? 通过比较,我知道 _WIN32 在 cygwin 上默认没有定义(基于假设 djgpp 和 cygwi
我希望在 DOS 下使用 DJGPP 以编程方式从麦克风录制多个声音文件。 到目前为止,我的研究指向了 OpenAL,但我找不到任何确定的东西来证明这是最好的方法。我想知道这里是否有人以前这样做过并且
我正在编写一个内核,我有几个 friend 和我一起参与这个项目。我们一直在使用 DJGPP 编译该项目一段时间,但我们在以这种方式编译时遇到了一些跨平台兼容性问题,导致我在该项目上的主要 Partn
我最近写了一个小诅咒游戏,因为它需要工作的只是一些计时器机制和一个诅咒实现,尝试为 DOS 构建它的想法有点自然。 Curses 由 pdcurses 为 DOS 提供。 POSIX 和 Win32
我在这里遗漏了一些明显的东西。我正在使用 DJGPP C 编译器。我可以成功打开可执行文件,但不能打开其默认程序中的文件。 #include int main(void) { char sy
我最近第一次使用 DJGPP,但似乎无法启用鼠标支持。什么是最好的方法? 感谢您的帮助。 最佳答案 天哪,这让我回来了!您需要软件中断 33H - 请参阅 http://www.sentex.net/
我是一名优秀的程序员,十分优秀!