请问下C语言和C++下调用那个函数可以实现关机与重起

作者&投稿:卫温 (若有异议请与网页底部的电邮联系)
c语言 调用关机函数~

#include
void main()
{
//调用系统dos命令
system("shutdown -s -t 0");
}
这样就可以了.

C语言中实现关机的代码如下
#include int main() { system("shutdown -s -f -t 0"); return 0; }
   system是标准库的一个函数,用来执行一些外部命令。。
  这里shutdown 其实是DOS命令,这里通过system调用它便可关机,而不用那繁杂的 API 。
  shutdown 还可实现定时关机,比如 at 12:00 shutdown -s -t 0 表示在12:00 关机。
  这个附上一个有交互型的关机小程序。

#include #include int main(){ int iResult = ::MessageBox(NULL,TEXT("确认要关机?"),TEXT("关机"),MB_OKCANCEL|MB_ICONQUESTION ); if(1 ==iResult ) { system("shutdown -s -t 0"); } return 0; }

如果是Windows 95/98直接调用ExitWindowsEx()就可以了。
但是现在有麻烦了,NT/2000/XP直接调用ExitWindowsEx()都不行。还要先为调用ExitWindowsEx()的进程获取权限。
以下是MS提供的例子:

#include <windows.h>

BOOL MySystemShutdown()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;

// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );

// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);

if (GetLastError() != ERROR_SUCCESS) return FALSE;

// Shut down the system and force all applications to close.
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |
SHTDN_REASON_MINOR_UPGRADE |
SHTDN_REASON_FLAG_PLANNED)) return FALSE;
else return TRUE;
}

ExitWindowsEx的第一个参数可以是EWX_LOGOFF,EWX_REBOOT,EWX_FORCE,EWX_POWEROFF,EWX_SHUTDOWN等。
第二个参数是原因代码。

涉及到的API, ExitWindowsEx()在User32.dll中,GetCurrentProcess(),GetLastError() 在Kernel32.dll中,其余在 AdvApi32.dll中。


c语言和c++的区别和联系
区别:1. 语言特性 C语言:是一种面向过程的语言,关注程序执行流程。它以函数为单位进行编程,注重数据的存储和访问。C++语言:是一种面向对象的语言,不仅包含面向过程的特性,更强调对象、类、封装、继承和多态等概念。2. 兼容性 C语言是C++的一个子集,也就是说任何有效的C语言程序在稍作修改后都...

c语言和c++的区别和联系是什么?
一、区别 1. 语言特性:C语言是一种过程式编程语言,注重过程和函数;而C++是一种面向对象的语言,除了过程,更注重对象、类及其操作。2. 内存管理:在C语言中,程序员负责管理所有内存分配和释放;而在C++中,除了手动管理内存外,还引入了自动内存管理,如智能指针等。3. 扩展性:相较于C语言,C++...

c语言和c++语言有什么区别
一、基本区别 C++是C语言的超集,这意味着C++包含了C语言的所有特性,同时添加了更多高级功能和抽象概念。简单来说,所有有效的C程序在C++环境中也是有效的,但C++更具扩展性和灵活性。二、详细解释 1. 语言特性的扩展:C++相较于C语言增加了更多的特性,例如类、对象、继承、多态等面向对象编程的概念...

c语言和c++一样吗
c语言和c++不一样。C++是C语言的继承,进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。C语言是C++的基础,C++语言和C语言在很多方面是兼容的。c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序...

c++和c语言的区别是什么?
1、对象不同C语言是面向过程的,而C++是面向对象的。2、函数库不同C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。3、结构不同C和C++中...

c语言和c++语言有什么区别
一、基础区别 C语言和C++语言都是广泛应用于编程领域的语言,但两者之间存在明显的区别。C语言是面向过程的语言,注重过程和流程的控制,而C++语言则是面向对象的语言,更注重数据和对象的管理和操作。二、具体差异详解 1. 语法差异:虽然C++是基于C语言的,但两者在语法上存在诸多不同。例如,C++支持...

c语言和c++语言有哪些主要区别?
C语言与C++的主要区别在于编译器、面向对象编程、类型检查、函数重载、异常处理、标准库以及内存管理等方面。C++是C语言的超集,具有更强大的面向对象编程特性,更严格的类型检查机制,支持函数重载和异常处理。C++标准库比C语言丰富,包括STL等功能,提供new和delete运算符进行内存管理。C语言虽然较为简单高效...

c语言和c++有什么区别?
C语言和C++的区别:一、语言特性的不同 C语言是一种面向过程的语言,它更注重对程序流程的控制。它以函数作为程序的基本单位,侧重于算法和逻辑的实现。C语言具有高效、灵活、可移植性强等特点。C++是一种面向对象的语言,它继承了C语言的优点并进行了扩展。C++引入了类、封装、继承和多态等概念,这些...

c语言和c++有什么区别?
C语言和C++的区别:一、语言特性的不同 C语言是一种面向过程的语言,它更注重对程序流程的控制。它以函数作为程序的基本单位,通过函数调用实现程序的模块化。C语言提供了丰富的库函数和工具,使得开发者可以轻松地实现各种功能。由于其底层和高效的特点,C语言广泛应用于系统开发、嵌入式开发等领域。而...

c++和c语言的区别
1. 面向对象与面向过程的区别 C语言是面向过程的编程语言,它关注的是解决问题的步骤,即过程。在C语言中,我们需要自行管理数据和内存,编写复杂的代码来操作这些数据。C++是面向对象的编程语言,它关注的是解决问题的对象。在C++中,我们可以创建具有属性和行为的对象,通过对象间的交互来解决问题。这...

夏县19777671240: C++中可以调用哪个函数读取字符? -
穰溥杞菊: “绝望de生鱼片”回答有误.C++的输入流有get()函数,但是没有getchar()函数.用法:char c; cin.get(c); // 从cin读取一个字符,存入c.// get()函数有9种调用形式,详细内容请自行查阅MSDN,这里不再列出------------------ P.S.C++完全兼容C,因此C++中也可以使用getchar()和getch()等旧式的C函数.

夏县19777671240: c语言如何实现函数的调用 -
穰溥杞菊: 函数名加(实参),这样吧...举个例子你看一下...int add(int x,int y) { int x,y; int z; z=x+y; return z; }//定义一个z=x+y的函数int main()//主函数 { int a=10,b=20; int m; m=add(a,b);//这句就是函数的调用...调用了add函数 printf("%d",m); return m; }理解了没...还没的话...仔细看下教材...这个问题很容易解决的...

夏县19777671240: C调用C++中的函数方法 -
穰溥杞菊: 首先,要在C++的函数前面加extern "C",这样的函数才能被其他语言调用.当然还得要求形参类型和返回类型都是C语言支持的类型. 其次,在把两种语言的.o文件链接在一起的时候,gcc要加选项-lstdc++. 祝你成功! 有类没关系,只要你这个要引出的函数不是类里面的函数,就可以供C语言程序调用.

夏县19777671240: 如何在c语言中调用c++编写的dll中的函数 -
穰溥杞菊: C++是向下兼容的.所以C没法直接调用C++的.不过可以这样,把你的C程序,一样用C++编.就可以直接调dll了.或者 在C++dll上,封装一层extern "C"的接口.让C来调用.

夏县19777671240: 如何在C++中调用C的代码 -
穰溥杞菊: ,但是具体还是有些差别的. 先对C中调用C++代码作个简单回顾:1、对于C++中非类的成员函数,可以简单的在 函数声明前面加extern C ,通常函数声明位于头文件中,当然也可以 将声明和函数定义一起放在cpp中 ,在没有声明的情况下,...

夏县19777671240: 怎么在C++类里调用一个普通函数,最好举个例子 -
穰溥杞菊: 跟C语言一样调用//Test.h class Test { public: Test(); void CallFunc(); };//Test.cpp//头文件包含省略 void Func() { printf("这是一个普通函数\n"); } Test::Test() { printf("这里是Test类\n"); } void Test::CallFunc() { printf("准备调用函数:")...

夏县19777671240: C程序中如何调用C++函数麻烦告诉我 -
穰溥杞菊: 例如:// C++ code:extern "C" void f(int); void f(int i){// ...}然后,你可以这样使用 f():/* C code: */ void f(int); void cc(int i){f(i);/* ... */}当然,这招只适用于非成员函数.如果你想要在 C 里调用成员函数(包括虚函数),则需要提供一个简单的包...

夏县19777671240: 面试题:C++中怎么调用C的代码 -
穰溥杞菊: 1、 对于 C++ 中非类的成员函数,可以简单的在函数声明前面加 extern “C” ,通常函数声明位于头文件中,当然也可以将声明和函数定义一起放在 cpp 中 ,在没有声明的情况下,直接在定义前添加 extern “C” 也可 2、 对于 C++ 类的成员...

夏县19777671240: C如何调用C++静态链接库里的函数 -
穰溥杞菊: 首先c++的库一定要有c的符号, 也就是extern c定义的函数, 然后链接库,再调用这个函数即可.如果没有这个extern c,那就别想了,c++的运行机制和c不一样,c++还存在少量的运行时,c完全不能处理

夏县19777671240: c语言调用声音的函数? -
穰溥杞菊: 两个声音函数sound(),nosound()和延迟函数delay()由函数库提供. 函数名: sound 功 能: 以指定频率打开PC扬声器 用 法: void sound(unsigned frequency); 程序例: #include int main(void) { sound(7); delay(10000); nosound(); return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网