C语言 控制台程序

C语言 控制台程序,第1张

不想调用控制台入口换winmain

底层的编译,在编译成目标文件之后,不要链接成可执行文件,生成别的

二进制文件

或者。。像

Linux内核

一样,编译成可执行文件,装载入内存,然后用内存镜像拷贝出纯二进制文件。。等等方法

至于编译驱动有另外更加专业的方法咯。。

想让一个程序在启动系统的时候自动运行,你有什么好办法?添加到启动组?那如果别人删除掉就不管用了。如果你使用了windows

nt/2000/xp,就可以试试把这个程序添加为一个服务,这样只有拥有权限的人才可以更改服务,只要你设置好权限,就不用担心会被别人删除了。

要把应用程序添加为服务,你需要两个小软件:instsrv.exe和srvany.exe。

instsrv.exe可以给系统安装和删除服务,srvany.exe可以让程序以服务的方式运行。这两个软件都包含在windows

nt

resource

kit里。

把这两个程序保存在一个方便的位置,例如c盘根目录下。

我们举例来说明,把oe作为一个服务添加进windows

xp

professional *** 作系统中,并把这个服务命名为“mail”。

在运行中输入“cmd”,回车,打开命令行窗口,在提示符后面直接输入:“c:\instsrv.exe

mail

c:\srvany.exe”然后回车,其中的“c:\instsrv.exe”和“c:\srvany.exe”表示这两个程序保存的位置,而mail则是你想添加的服务名称。

运行regedit打开注册表编辑器,在hkey_local_machine\system\currentcontrolset\services下,找到刚才添加的mail,点击右键,新建一个键,命名为“parameters”,点击新建的parameters,并再次新建一个名称为“application”的子键,数据类型为“reg_sz”,数值为希望作为服务运行的程序的所在位置,如果你的windows系统安装在c盘下,那么oe的程序位置就是c:\program

files\outlook

express\msimn.exe

,把这个路径添入数值中。

到现在,这个服务已经成功的添加并且设置好了。如果你希望做的更加专业,可以在mail服务下建立一个名为description的子键,数据类型同样为reg_sz,数值可以写一些你对这个服务的描述,这个我们在后面可以看到。

接下来需要对服务做一些额外的设置,在运行中输入“services.msc”并回车,在列表中找到我们刚添加的mail服务,双击打开,来做详细的设置。

在“general”选项卡上,我们需要设置这个服务的运行方式,可以看见,作为一个服务,有“自动(automatic)”,“手动(manual)”和“禁止(disabled)”三种启动类型,按照需要,我们一般设置成自动就可以了。而在“logon”选项卡下可以设置以什么身份运行这个服务,一般可以不用理会,按照默认的设置。“recovery”选项卡下则是进行恢复设置的,你可以指定,在服务第一次,第二次和第三次出错之后分别采取什么措施。“dependencies”则显示了服务之间的依存关系,可以让你察看这个服务的运行依赖哪些其它服务,以及还有什么服务依赖于这个服务。这后面几个对我们一般用户没有什么意义。经过这些设置,你的服务已经完全可以正常工作了。

注销一下看看。为了让你看清除,我们先打开oe,这时在任务管理器里,有两个msimn进程,用户名为“.com.cn”的是我们打开的oe,而用户名为“system”的就是我们添加的服务。

如果你玩够了,不想再运行这个服务,可以直接禁止它在启动的时候运行,或者使用instsrv.exe程序删除。方法是在命令行下输入“c:\instsrv.exe

mail

remove”,然后回车就可以了。需要注意的是instsrv.exe这个程序也可以删除某些系统服务,所以使用的时候一定要小心,对于系统服务,安全起见千万不要删除,哪怕你觉得它对你没有用。

#include <stdio.h>

typedef struct point {

    int x

    int y

} quadrangle

int main(int argc, char const* argv[])

{

    quadrangle four[4]

    int i, j, tmpx, tmpy

    for(i=0 i<4 i++)

    {

        printf("输入第%d个点,每个点由x轴,y轴坐标表示如:12 5\n", i+1)

        scanf("%d%d", &four[i].x, &four[i].y)

    }

    for(i=0 i<4 i++)

    {

         tmpx = four[i].x

         tmpy = four[i].y

         for(j=i+1j<4 j++)

         {

            if(four[j].x<tmpx)

            {

                 four[i].x = four[j].x

                 four[i].y = four[j].y

                 four[j].x = tmpx

                 four[j].y = tmpy

                 tmpx = four[i].x

                 tmpy = four[i].y

            }

         }

    }

         int a[2],b[2],c[2],d[2]

         if(four[0].y>four[1].y)

         {

             a[0] = four[1].x

             a[1] = four[1].y

             d[0] = four[0].x

             d[1] = four[0].y

         }

         else {

             a[0] = four[0].x

             a[1] = four[0].y

             d[0] = four[1].x

             d[1] = four[1].y

         }

         if(four[2].y>four[3].y)

         {

             b[0] = four[3].x

             b[1] = four[3].y

             c[0] = four[2].x

             c[1] = four[2].y

         }

         else

         {

             b[0] = four[2].x

             b[1] = four[2].y

             c[0] = four[3].x

             c[1] = four[3].y

         }

         printf("a(%d, %d) b(%d, %d) c(%d, %d) d(%d, %d)\n",

                 a[0],a[1],    b[0],b[1],    c[0],c[1],    d[0],d[1])

    return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11092971.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存