首页
社区
课程
招聘
求助C程序一个
发表于: 2009-11-24 18:00 9299

求助C程序一个

2009-11-24 18:00
9299
本人在学习之余,看到一个C语言题目,本人菜鸟难以解决,所以请教高手帮忙!
C程序的题目是:实现登录窗口的程序。即在登录前必须在窗口中输入正确的口令,方可进入!
耽误大家时间了,只要给出完整TC编写的程序,调试通过,给予20kx回报,先给出程序的获得此报酬!
谢谢了!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (49)
雪    币: 163
活跃值: (103)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
cout<<"请输入密码“<<endl
char my[]=new char[5];
cin>>my;
if (my[0]="d" && my[1]="x")
MessageBoxA(0,"ok","ok",0);
else
MessageBoxA(0,"WRIONG","WRIONG",0);
2009-11-24 18:31
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上的可以给出完整的程序吗?
本人菜鸟,还是有疑惑!
2009-11-24 18:58
0
雪    币: 163
活跃值: (103)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
就是获取密码然后比较啊
2009-11-24 19:00
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
#include<stdio.h>
#include<string.h>
#define PASSWORD "123456"

int check(char *password)  //验证密码
{
        int a;
        a = strcmp(password,PASSWORD);
        return a;
}

int main()
{
        int flag=0;
        char password[1024];
        while(1)
        {
                printf("please input password:     ");
                scanf("%s",password);
                flag = check(password);
                if(flag)
                {
                        printf("密码错误!\n\n");
                }
                else
                {
                        printf("密码正确!\n");
                        break;
                }
        }
        return 0;
}
2009-11-24 19:03
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
2楼给出的是C++了,不是C
2009-11-24 19:06
0
雪    币: 506
活跃值: (318)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
5楼的兄弟程序写的可以。
2009-11-24 19:08
0
雪    币: 101
活跃值: (157)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
又看到LZ的头像。。。。
2009-11-24 19:14
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
#include "stdio.h"
#include "string.h"
#include "conio.h"
void main()
{
        char pwd[]="123456";
        char str[7];
        printf("Please enter the password!\n");
        scanf("%s",str);
        while(strcmp(pwd,str)!=0)
        {
                printf("Password Error!\n");
                fflush(stdin);
                scanf("%s",str);
       
        }
       
        printf("Conglatulations!\n");
        getche();
        //后面是你程序的方要代码
       
}
2009-11-24 19:27
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
回5楼,我要的是窗口和登录前后的提示,可以用画图的功能给个窗口吗?
谢谢了!大家有好的程序,继续给我参考哈!呵呵!谢谢了!
2009-11-24 19:30
0
雪    币: 163
活跃值: (103)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
11
C++下如何在当前代码加入一定量字节的空代码
2009-11-24 19:30
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
C++下如何在当前代码加入一定量字节的空代码

可以在适当位置加入:
__asm
{
     _emit 0x90
     _emit 0x90
     _emit 0x90
     ......
}
2009-11-24 19:33
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
回9楼还是不明白,我要的是完整的程序,思路我是有了,但是我在短时间内还是无法写出来,所以劳驾高手代劳!
谢谢了!
2009-11-24 19:37
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我要的是窗口和登录前后的提示,可以用画图的功能给个窗口吗?

你是要提示窗口可以把 printf 换成 MessageBox 前面在加入 #include <windows.h>
你要是想整个程序都是窗口的话,你得新建一个Win32应用程序或MFC工程
2009-11-24 19:38
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
楼主先确定要写 控制台程序 还是 win32应用程序?
2009-11-24 19:39
0
雪    币: 163
活跃值: (103)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
16
追风傲雪

厉害哈~~我要的是一定量的空代码,比如100字节
2009-11-24 19:50
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
回15楼,现在TC20可以画图实现窗口的!
2009-11-24 19:59
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
总结,其实楼主还不知道什么是窗口,
console是窗口,window也是窗口
都不知道你说的是那种
2009-11-24 20:25
0
雪    币: 348
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
楼主要sdk 还是mfc来完成?
2009-11-24 20:25
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我要的是dos界面的或者是windows界面的窗口都可以!多谢各位的解答,但是我还是不明白,希望高手给出完整代码!我要的是C语言写的代码!还请各位看看我的主贴就明白我要问什么了!
2009-11-24 20:55
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
控制台的用 5楼或者9楼的都可以,都是完整代码
下面这个是window窗口的,我看你要的是直接复制就可以编译的代码,
就仿照汇编的风格写了这个,笫一次用SDK写

#include <windows.h>
#include "Shlwapi.h"
#define EditID 1
#define ButtonID 2
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);  
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,PTSTR szCmdLine,int iCmdShow)
{
  WNDCLASS wndcls;
  wndcls.cbClsExtra=0;
  wndcls.cbWndExtra=0;
  wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
  wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
  wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
  wndcls.hInstance=hInstance;
  wndcls.lpfnWndProc=WinSunProc;
  wndcls.lpszClassName="windows";
  wndcls.lpszMenuName=NULL;
  wndcls.style=CS_HREDRAW | CS_VREDRAW;
  RegisterClass(&wndcls);
  HWND hwnd;
  hwnd=CreateWindow("windows","Make By 泥芭",WS_OVERLAPPEDWINDOW,
          0,0,300,150,NULL,NULL,hInstance,NULL);
  ShowWindow(hwnd,SW_SHOWNORMAL);
  UpdateWindow(hwnd);
  MSG msg;
  while(GetMessage(&msg,NULL,0,0))
  {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
  }
  return 0;
}
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
        HWND hEdit;
        HWND hButton;
        CHAR wStr[1024]="0";
        switch(uMsg)
        {
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        case WM_CREATE:

                hEdit=CreateWindowEx(NULL,"Edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,10,30,120,25,hwnd,HMENU(EditID),NULL,NULL);
                hButton=CreateWindowEx(NULL,"button","确定",WS_CHILD|WS_VISIBLE|WS_BORDER,120,30,60,25,hwnd,HMENU(ButtonID),(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), NULL);
        case WM_COMMAND:
                if ((lParam!=0)&&((wParam&0xffff)==ButtonID))
                {
                        GetDlgItemText(hwnd,EditID,wStr,1024);
                        if (StrCmp(wStr,"123456"))
                        {
                                MessageBox(NULL,"密码错误!",NULL,MB_OK);
                        }
                        else
                        {
                                MessageBox(NULL,"密码正确","恭喜",MB_OK);
                        }
                       

                }
        default:
                return DefWindowProc(hwnd,uMsg,wParam,lParam);
        }
        return 0;
}
2009-11-24 21:11
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
我要的是一定量的空代码,比如100字节

100字节的空间还是在堆栈中构造吧,把栈顶抬高64h
sub esp, 64h
在代码段除了用 _emit伪指令,实在难以想出别的办法

另外,默认代码段是不可以写的,如果你改变linker参数
#pragma comment(linker,"/section:.text,rwe")
即便是成功了,也难以保证不会出意料
2009-11-24 22:31
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
回21楼还是没有成功!头文件#include <windows.h>就出错了!本人真的是才开始学C语言,不懂在所难免,请大家指教!
2009-11-24 22:48
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
估计是TC库里没有windows.h这个头文件...

楼主还是改用VC吧,TC实在是...
2009-11-24 22:51
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
#include <windows.h>
#include "Shlwapi.h"
#pragma comment(linker,"/subsystem:windows");
#define EditID 1
#define ButtonID 2
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);  
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,PTSTR szCmdLine,int iCmdShow)
{
        WNDCLASS wndcls;
        wndcls.cbClsExtra=0;
        wndcls.cbWndExtra=0;
        wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
        wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
        wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
        wndcls.hInstance=hInstance;
        wndcls.lpfnWndProc=WinSunProc;
        wndcls.lpszClassName="windows";
        wndcls.lpszMenuName=NULL;
        wndcls.style=CS_HREDRAW | CS_VREDRAW;
        RegisterClass(&wndcls);
        HWND hwnd;
        hwnd=CreateWindow("windows","Make By 泥芭",WS_OVERLAPPEDWINDOW,
                0,0,300,150,NULL,NULL,hInstance,NULL);
        ShowWindow(hwnd,SW_SHOWNORMAL);
        UpdateWindow(hwnd);
        MSG msg;
        while(GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return 0;
}
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
        HWND hEdit;
        HWND hButton;
        CHAR wStr[1024]="0";
        switch(uMsg)
        {
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        case WM_CREATE:
               
                hEdit=CreateWindowEx(NULL,"Edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,10,30,120,25,hwnd,HMENU(EditID),NULL,NULL);
                hButton=CreateWindowEx(NULL,"button","确定",WS_CHILD|WS_VISIBLE|WS_BORDER,120,30,60,25,hwnd,HMENU(ButtonID),(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), NULL);
        case WM_COMMAND:
                if ((lParam!=0)&&((wParam&0xffff)==ButtonID))
                {
                        GetDlgItemText(hwnd,EditID,wStr,1024);
                        if (StrCmp(wStr,"123456"))
                        {
                                MessageBox(NULL,"密码错误!",NULL,MB_OK);
                        }
                        else
                        {
                                MessageBox(NULL,"密码正确","恭喜",MB_OK);
                        }
                       
                       
                }
        default:
                return DefWindowProc(hwnd,uMsg,wParam,lParam);
        }
        return 0;
}
2009-11-25 08:52
0
游客
登录 | 注册 方可回帖
返回
//