- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我不明白为什么以下代码在从 C 程序运行时返回“'bcdedit' 不是内部或外部命令”。 bcdedit 在 cmd 行上工作得很好。我怎样才能让它发挥作用?
#include <stdio.h>
int main ()
{
system("bcdedit");
system("TIMEOUT /T 3");
return(0);
}
最佳答案
发生这种情况是因为当您通过“开始”菜单或什至是“执行”窗口运行命令提示符
时,您运行的是 64 位 cmd
版本,位于 C :\Windows\System32\cmd.exe
,但是当从您的 c 程序调用 cmd
时,它会调用位于 的 32 位
。 发生这种情况是因为您的 C 编译器生成了 32 位应用程序。cmd
版本C:\Windows\SySWOW64\cmd.exe
根据 MSDN:
The %windir%\System32 directory is reserved for 64-bit applications. Most DLL file names were not changed when 64-bit versions of the DLLs were created, so 32-bit versions of the DLLs are stored in a different directory. WOW64 hides this difference by using a file system redirector.
In most cases, whenever a 32-bit application attempts to access %windir%\System32, the access is redirected to %windir%\SysWOW64.
来源:http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187%28v=vs.85%29.aspx
如果比较两个 cmd
,您会发现它们是相同的,不同的是 dll。
问题是 Windows x64 在 System32
文件夹中提供了 64 位的 bcdedit.exe
,但没有提供 32 位的 bcdedit。 exe
任何地方。 所以32位的cmd
无法运行64位的bcdedit
,所以返回此命令无效。
解决方案:您既可以从 Windows x86 版本获取 32 位 bcdedit
,也可以编译 64 位应用程序。
关于c - 如何从我的 C 程序运行 bcdedit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10827556/
我丢失了 ubuntu\winboot\wubildr.mbr 文件,该文件在引导顺序中不断出现。所以我以管理员身份运行终端并输入 bcdedit/delete 标识符(在实模式引导扇区下) 但它只是
我正在尝试在我的工作笔记本电脑上运行 Oracle Virtual Box。我收到一条错误消息,说它无法运行,因为我正在运行 Hyper-v。我正在尝试按照 Scott Hanselman's Blo
使用 ImageX 和 WIM 重建 HDD 后,BCD 有时会损坏。因此,我需要从在命令提示符下无人值守运行的脚本中重新构建 BCD。 手动输入时,以下代码可以完成工作。我需要帮助使其自动化(请参见
所以我可以在 powershell 脚本中编写 bcd 命令,就像我在 cmd 提示符下一样,例如: bcdedit /default '{current}' 但是我需要一个执行此操作的脚本: bcd
我不明白为什么以下代码在从 C 程序运行时返回“'bcdedit' 不是内部或外部命令”。 bcdedit 在 cmd 行上工作得很好。我怎样才能让它发挥作用? #include int main
当我尝试从我的 C# 应用程序运行 BCDEDIT 时,出现以下错误: 'bcdedit' is not recognized as an internal or external command,
我正在尝试设置内核调试,所以我正在使用命令: bcdedit /set debug on 不幸的是,我得到了回应 The parameter is incorrect. a) 有谁知道如何调试该错误吗
如何使用 bcdedit 添加新的 UEFI 固件启动菜单条目(在 NVRAM 中)。例如我尝试了以下步骤,但未添加启动项。 bcdedit /create /d "LinuxLoader" /app
从提升的命令提示符运行 bcdedit.exe 时,您可以看到当前 BCD 设置的值。我需要读取 hypervisorlaunchtype 的设置/值。 有谁知道这样做的方法吗? 我试图将管道输出写入
这是带有命令的 C++ 代码,命令用于在网络模式安全启动中运行 Windows 并重启,此代码仅在 32 位操作系统中运行,但在 64 位操作系统中只会重启,但不会在安全启动模式下发生。 [注意]:我
我正在阅读有关 Windows 内部结构的书籍和文章。我想在 Windows 7(32 位)机器的 WinDBG 中启动内核调试器。我尝试通过设置 bcdedit/debug/on 启用机器进行调试。
根据 MSDN 使用 LAN 启用内核调试(我正在使用适当的 LAN 板) ,我应该输入: bcdedit /dbgsettings NET HOSTIP:123.123.123.123 PORT:5
我是一名优秀的程序员,十分优秀!