• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Hello World

    標簽: HelloWorld

    Hello World

    一、簡述

             簡單的Hello World程序。(時間久了就會忘,趁著還有印象先記下)
        1、C語言:  控制臺程序、有窗體的程序
        2、C++:    控制臺程序、MFC窗體程序
        3、QT:    無界面程序、有界面程序
        4、Java:  無界面程序、有界面程序
        5、html:    純html程序、html+js(彈出窗體)程序
        6、C#:    控制臺程序、winform窗體程序
        7、匯編:  控制臺程序、有窗體程序

    二、代碼

    1、C語言

      1.1 控制臺(無圖形界面)

       

    HelloWorld.c文件:

    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
    	printf("Hello World!\n");
    	getchar();//等待一下 
    	return 0;
    }

    1.2有圖形界面


    HelloWorld.c文件:

    #include <windows.h>
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow)
    {
    	MessageBox(NULL, TEXT("Hello World!"), TEXT("Hello World"), MB_OK);
    	return 0;
    }

    或者是


    HelloWorld.c文件

    #include <windows.h>
    
    int main(int argc, char *argv[])
    {
    	MessageBox(NULL, TEXT("Hello World!"), TEXT("Hello World"), MB_OK);
    	return 0;
    }

    2、C++

    2.1控制臺


    HelloWorld.cpp文件

    #include <iostream>
    
    int main(int argc, char *argv[])
    {
    	std::cout<<"Hello World!\n";
    	std::cin.get();//等待一下 
    	return 0;
    }

    2.2MFC界面


    HelloWorld.cpp文件

    #include <stdafx.h>
    //自定義窗口類
    class MyWnd :public CFrameWnd
    {
    public:
         MyWnd();
    protected:
        void OnPaint();//窗體描繪
         DECLARE_MESSAGE_MAP()//消息映射
    };
    MyWnd::MyWnd()
    {
         Create(NULL,TEXT("HelloWorld"));//創建一個窗體,標題為HelloWorld
    }
    
    void MyWnd::OnPaint()
    {
         CPaintDC dc(this);
         dc.TextOut(10,10,TEXT("Hello World!"));
    }
    
    //消息映射
    BEGIN_MESSAGE_MAP(MyWnd,CWnd)
         ON_WM_PAINT()
    END_MESSAGE_MAP()
    
    class Hello :public CWinApp
    {
    public:
         BOOL InitInstance();//重寫
    };
    //唯一的應用程序類實例 
    Hello hello;
    
    BOOL Hello::InitInstance()//初始化
    {
         m_pMainWnd = new MyWnd();
         m_pMainWnd->ShowWindow(m_nCmdShow);
         m_pMainWnd->UpdateWindow();
         return true;
    }

    注:項目是通過Win32創建的,因為直接創建MFC項目,會有很多不需要的代碼。


    創建之后要用到MFC,需要設置MFC的使用(右鍵項目--》屬性--》配置屬性--》常規--》MFC的使用--》在共享DLL中使用MFC)


    修改stdafx.h文件:將#include <windows.h>改為#include <afxwin.h>

    3、QT

    3.1非圖形界面:


    HelloWorld.pro文件

    SOURCES += \
        main.cpp 

    main.cpp

    #include <QDebug>
    int main(int argc,char* argv[])
    {
        qDebug()<<"Hello World\n";
        return 0;
    }

    3.2圖形界面:


    HelloWorld.pro文件

    SOURCES += \
        main.cpp \
        mywindows.cpp
    QT += widgets gui
    
    HEADERS += \
        mywindows.h

    mywindows.h文件

    #ifndef MYWINDOWS_H
    #define MYWINDOWS_H
    
    #include <QMainWindow>
    
    class MyWindows : public QMainWindow
    {
        Q_OBJECT
    public:
        explicit MyWindows(QWidget *parent = 0);
    
    signals:
    
    public slots:
    
    };
    
    #endif // MYWINDOWS_H
    

    main.cpp文件

    #include <QApplication>
    #include "mywindows.h"
    
    int main(int argc,char *argv[])
    {
        QApplication app(argc,argv);
        MyWindows *w = new MyWindows();
        w->show();
        return app.exec();
    }
    

    mywindows.cpp文件

    #include "mywindows.h"
    #include <QLabel>
    
    MyWindows::MyWindows(QWidget *parent) :
        QMainWindow(parent)
    {
        QLabel *label = new QLabel(this);//為窗體添加一個標簽
        label->setText("Hello World!");//設置標簽的文本為 Hello World
    }

    4、Java

    4.1無圖形界面


    Helloworld.java文件

    public class Helloworld {
    	public static void main(String[] args) {
    		System.out.println("Hello World!\n");
    	}
    }

    4.2有圖形界面


    HelloWorld2.java文件

    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    
    public class HelloWorld2 extends JFrame {
    
    	private JPanel contentPane;
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					HelloWorld2 frame = new HelloWorld2();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    	public HelloWorld2() {
    		setTitle("HelloWorld");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 450, 300);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(new BorderLayout(0, 0));
    		setContentPane(contentPane);
    		
    		JLabel lblHelloWorld = new JLabel("Hello World!");
    		contentPane.add(lblHelloWorld, BorderLayout.NORTH);
    	}
    
    }z

    注:File--》New--》Java Project--》Other--》WindowsBuilder--》Swing Designer--》JFrame

    (若沒有WindowsBuilder則添加,)

    1)、找到對應版本的windowbuilder:http://www.eclipse.org/windowbuilder/download.php

    2)、右鍵“link”復制下載地址


    3)、打開eclipse-->Help-->Install New Software


    4)、下載


    5、html+js

    5.1html


    HelloWorld.html文件

    <!DOCTYPE html>
    <html>
    	<head>
    		<title>HelloWorld</title>
    	</head>
    	<body>
    		Hello World!
    	</body>
    </html>

    5.2 js彈出窗體


    HelloWorld.cpp文件

    <!DOCTYPE html>
    <html>
    	<head>
    		<title>HelloWorld</title>
    	</head>
    	<script type="text/javascript" >
    	function Hello()
    	{
    		alert("Hello World!");
    	}
    	</script>
    	<body>
    		<input type="button"  value="HelloWorld" onclick="Hello()">
    	</body>
    </html>

    6、C# (CSharp)

    6.1 控制臺程序


    Program.cs文件

    namespace HelloWorld3
    {
        class Program
        {
            static void Main(string[] args)
            {
                System.Console.Write("Hello World!\n");
                System.Console.ReadKey();//等待一下
            }
        }
    }
    

    6.2 winform窗體程序


    Program.cs文件

    using System;
    using System.Windows.Forms;
    
    namespace HelloWorld4
    {
        static class Program
        {
            /// 應用程序的主入口點。
            
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }
    

    Form1.Designer.cs文件

    namespace HelloWorld4
    {
        partial class Form1
        {
            private System.ComponentModel.IContainer components = null;
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    
            #region Windows 窗體設計器生成的代碼
            private void InitializeComponent()
            {
                this.SuspendLayout();
    
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(284, 262);
                this.Name = "Form1";
                this.Text = "HelloWorld";//窗體標題
                
                this.ResumeLayout(false);
    
            }
    
            #endregion
        }
    }
    
    

    Form1.cs文件

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Windows.Forms;
    
    namespace HelloWorld4
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                //實例化一個命令按鈕
                Label label = new Label();
    
                //設置命令按鈕的屬性 
                label.Location = new Point(50, 50);
                label.Size = new Size(80, 25);
                label.Text = "Hello World!";
    
                this.Controls.Add(label);
            }
    
        }
    }
    

    7、匯編

    7.1 控制臺程序


    HelloWorld.asm文件

    data segment  ;數據段定義開始
         str1  db  'Hello World!',13,10,'$'
         ;定義了一個字符串變量str1
         ;DB  字節數據類型
         ;13 CR 回車
         ;10 LF 換行
         ;$作為字符串的結束符
    data ends    ;數據段定義結束
    code segment ;代碼段定義開始
          assume    CS:code,DS:data   ;指定對應的代碼段、數據段
    start:     ;程序開始
        mov ax,data  ;將數據段地址保存到ds寄存器
        mov ds,ax  
          
        lea  dx,str1     ;lea 獲取變量str1的首地址,將其存放到dx寄存器中
        
        mov ah,09h  
        int 21h     ;中斷,根據ah寄存的值執行對應功能,09:將dx寄存器指向內容輸出到屏幕
          
        
        mov ah,4ch  
        int 21h  ;調用4c中斷功能,正常返回dos
      
    code ends  ;代碼定義結束
        end start  ;程序結束

    注:分號為注釋符

    7.2 窗體程序


    Hello.asm文件

    .386  ;指令集
    .model flat,stdcall  ;調用模式
    option casemap:none  ;是否區分大小寫
    
    ;包含相關文件
    include   windows.inc  
    include   gdi32.inc  
    includelib    gdi32.lib  
    include    user32.inc  
    includelib    user32.lib  
    include    kernel32.inc  
    includelib    kernel32.lib  
    ;數據段  
    .data? ;變量聲明  
        hInstance    dd  ?  
        hWinMain     dd  ?  
    .const;常量聲明  
        szClassName    db 'MyClass',0  
        szCptionMain  db 'HelloWorld',0  ;窗口標題
        szText      db 'Hello World',0   ;內容
        
    ;代碼段  
    .code  
    ;函數過程  
    _ProcWinMain  proc uses ebx edi esi ,hWnd,uMsg,wParam,lParam  
             local @stPs:PAINTSTRUCT  
             local @stRect:RECT  
             local @hDc  
             mov eax,uMsg  
               
          .if     eax  ==  WM_PAINT  
                   invoke BeginPaint,hWnd,addr @stPs  
                   mov @hDc,eax  
                     
                   invoke GetClientRect,hWnd,addr @stRect  
                   invoke DrawText,@hDc,addr szText,-1,\  
                   addr @stRect,\  
                   DT_SINGLELINE or DT_CENTER or DT_VCENTER      
                   invoke EndPaint,hWnd,addr @stPs  
                     
          .elseif     eax  ==  WM_CLOSE  
                     invoke DestroyWindow,hWinMain  
                     invoke PostQuitMessage,NULL  
                       
           .else        
               invoke DefWindowProc,hWnd,uMsg,wParam,lParam    
                   ret  
           .endif  
            xor      eax,eax  
            ret  
     ;_ProcWinMain函數結束  
     _ProcWinMain endp  
     ; _WinMain子函數  
    _WinMain   proc  
                local    @stWndClass:WNDCLASSEX  
                local    @stMsg:MSG  
                invoke GetModuleHandle,NULL  
                mov hInstance,eax  
                invoke RtlZeroMemory,addr @stWndClass,sizeof @stWndClass  
        ;注冊窗口類  
                  invoke   LoadCursor,0,IDC_ARROW  
                  mov     @stWndClass.hCursor,eax  
                  push    hInstance  
                  pop    @stWndClass.hInstance  
                  mov    @stWndClass.cbSize,sizeof WNDCLASSEX  
                  mov    @stWndClass.style,CS_HREDRAW or CS_VREDRAW  
                  mov    @stWndClass.lpfnWndProc,offset _ProcWinMain  
                  mov    @stWndClass.hbrBackground,COLOR_WINDOW+1  
                  mov    @stWndClass.lpszClassName,offset szClassName      
                  invoke   RegisterClassEx,addr @stWndClass  
    ;建立并顯示窗口  
                  invoke   CreateWindowEx,WS_EX_CLIENTEDGE,\  
                        offset szClassName, offset szCptionMain,\  
                        WS_OVERLAPPEDWINDOW,\  
                        100,100,600,400,\  
                        NULL,NULL,hInstance,NULL  
                  mov    hWinMain,eax  
                  invoke   ShowWindow,hWinMain,SW_SHOWNORMAL  
                  invoke  UpdateWindow,hWinMain  
    ;消息循環  
                    
                  .while   TRUE  
                  invoke  GetMessage,addr @stMsg,NULL,0,0  
                  .break  .if  eax==0  
                  invoke  TranslateMessage,addr @stMsg  
                  invoke   DispatchMessage,addr @stMsg  
                  .endw  
                  ret  
    ;函數結束  
    _WinMain  endp  
    ;程序入口  
    start:  
        call _WinMain  
       invoke ExitProcess,NULL  
     end start  

    7.3第二種方式


    Hello.asm文件

    .386    ;指令集
    .Model Flat, StdCall  ;調用模式
    Option Casemap :None  ;區分大小寫
      
      include windows.inc
      include user32.inc
      include kernel32.inc
    
      includeLib user32.lib
      includeLib kernel32.lib
    .data
      str1 db "Hello World!",0  ;變量str1,用來存放內容,0:字符串結束符
      str2 db "HelloWorld",0    ;變量str2,用來存放標題,0:字符串結束符
    .CODE
      START:
      invoke MessageBox,0,offset str1,offset str2,0
      invoke ExitProcess,0
      END START

    三、未完待續!

    版權聲明:本文為nanfeibuyi原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/nanfeibuyi/article/details/80201066

    智能推薦

    Hello world

    代碼: 運行圖:...

    hello world

    markdown學習 二級標題 字ti hello world! hello world hello world hello world 引用 選擇,this 分割線 圖片 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-uJIujra7-1593321564659)(/Users/jishujun/Desktop/截屏2020-06-28 下午1.10.41.png...

    Hello, World!

    Hello, World! "Hello, World!", 程序猿學習各種編程語言的第一個程序。 這篇文章主要介紹了24種編程語言的“Hello, World!”程序,以Java、C語言、C++、C#、Python、PHP等15種主流編程語言舉例說明,快速了解下這些語言開發、編譯、環境搭建、運行等情況。 01. Java 環境: JDK 1.7 代碼:...

    hello world

    編寫第一個java程序 一個java的源文件(.java)中,可以包含多個class的,但只能有一個public的class, 并且該class的名稱與源文件一致 編寫好的java源文件需要在doc環境中,使用javac指令進行編譯,生成java類文件(.class) javac xx.java 使用java指令來運行類文件 java xx ----注意,運行類文件時,不需要指定后綴名(.clas...

    Hello world!

    Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! ,Hello world! Hello world! Hello world!1 ; Hello world! H...

    猜你喜歡

    hello world

    Hello world 隨便新建一個文件夾, 存放代碼 新建一個Java文件 文件后綴名為java 編寫代碼 編譯javac java文件,會生成一個class文件 運行Java class文件 可能會遇到的情況 1.每個單詞的大小不能出現問題,Java是大小寫敏感的 2.盡量使用英文 3.文件名和類名(class后面修飾的)必須保證一致,并且首字母大寫 4.符號使用的了中文 5.括號都是成對出現...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡