三種常見中文內碼的轉換方法

我們平時常見的三種中文內碼是:GB2312(簡體中文)、GBK、BIG5(繁體中文)。網上有很多中文內碼的專用轉換工具。我們碰到由於內碼不一致而導致的亂麻問題,用這些工具可以進行相互轉換。但論壇裡經常有人問如何在自己的程式中整合這些功能呢?本文將介紹如何利用 Windows 提供的API 函數來實現。轉換涉及到的 API 函數主要有兩個:MultiByteToWideChar 和 WideCharToMultiByte。有關這兩個函數的詳細文檔請參考

如何編寫對檔案按位元組寫入的程式

我寫了一個基於x86的boot。想通過磁碟片啟動。但是沒有磁碟片,所以就安裝了一個Vitual PC,然後虛擬了一個磁碟片,當然,這個磁碟片就是一個檔案。我猜這個檔案的第一個位元組就是對應於實際的磁碟片的0面0道1扇。我想把可執行檔按照位元組直接寫到這個檔案中去。結果證明,我得猜想是正確的。我得boot能夠正常工作。  把關鍵代碼寫出來:  說明:BootSctr.img是啟動程式的鏡像。  fl.vfd是虛擬磁碟的檔案 void CFloppyWriterDlg::OnButton1()

DateGrid在ADO.NET中的應用

DateGrid是Visual Studio .NET中最通用,最靈活,功能最強的控制項,主要是以表格的形式顯示資料,並可根據需要編輯資料,在應用程式訪問資料庫使用較多的方法,DateGrid在Visual Studio 2005中以被功能更為強大的DateGridView代替,基本用法差不多,這裡用DateGridView為例,國際慣例,所有代碼均只實現功能,異常、資料驗證等等不考慮,如有需要請自行添加。     樣本1:表單:         

在DB2上建立database Partition

建立database partition  1、建立需要建立資料庫分區的db instance  可使用命令建立db instance :  db2icrt -s ESE -u db2admin,aaa123456 -h ANWENHAO DBINSTANCENAME  建立完成對應的instance 後需要重啟DB2 .  2、將建立的db instance 加入到DB2中:  CATALOG LOCAL NODE DB2INST1 INSTANCE DB2INST1 SYSTEM

學習Socket ,寫簡單網路監視程式心得!

主要思路是通過原始通訊端來將通過本機網卡的IP層資料包捕獲!  #ifndef _PROTO_H#define _PROTO_H 0x2009#include <winsock2.h>#include <ws2tcpip.h>#include <mstcpip.h>#pragma comment(lib, "Ws2_32.lib")#define MAX_PACK_LEN 65535 // The max IP packet to

用VC編程阻止全域鉤子的載入

先說一下全域鉤子是怎麼進入到我們的程式裡來的。假如有個程式A安裝了WH_GETMESSAGE的全域鉤子,鉤子函數在B.dll中,那麼當其它程式在調用GetMessage函數從自己的訊息佇列中取訊息的時候,系統發現程式A安裝了WH_GETMESSAGE的全域鉤子,就會檢查調用GetMessage的進程是否載入了B.dll,如果沒有,就調用LoadLibrary進行載入,然後調用B.dll中的鉤子過程。這樣,鉤子dll就會在所有調用GetMessage的進程中載入。  我們要做的工作,就是在系統調用

VC++實現工具列上添加平面下拉式方塊控制項

使用過OFFICE2000的人都知道,它的介面,尤其是菜單和工具條,可謂是讓人耳目一新。雖然Visual C++開發工具也提供了對工具條的支援,但通常只是按紐的集合,不能直接加入組合框等控制項,實現OFFICE2000風格的工具條。本執行個體針對其中的一個細節,講述了在Windows環境下用Visual C++6.0在工具條中加入平面下拉式方塊控制項方法,並實現了組合框的訊息響應函數,使得我們的程式看上去更加專業。程式編譯運行後的效果一所示:圖一、工具列中的平面下拉式方塊控制項  一、實現方法 

VC++中利用/GS開關防止緩衝區溢位

緩衝區溢位通常表現為一個最為常見的漏洞而存在於今天的各種軟體之中,駭客可以用惡意的輸入,從而更改程式的執行流程,由此入侵相應的進程、電腦、或整個域。如果進程運行於一個高度受信的賬戶之下,如管理員或本地系統賬戶,那麼駭客帶來的破壞將是極其嚴重,並有潛在廣泛傳播的危險。近幾年來爆發的一些"知名"病毒,如紅色代碼、衝擊波、震蕩波等等,都源於C/C++代碼緩衝區溢位的結果。  從程式的角度來看,緩衝區溢位只是一個再簡單不過的編程錯誤--都是關於複製一個記憶體地區的內容到另一個記憶體地區,而目標記憶體地區

如何儲存資料庫連接參數代碼及步驟詳解

在設計資料庫應用程式的時候,經常需要將一些資訊從程式中獨立出來,以保證程式的可移植性。其中最重要的資訊就是資料庫的串連參數。 在Delphi中,獲得正確的資料庫連接參數的方法十分簡單,你只需要建立一個資料模組,在其中添加一個ADO Connection,雙擊之,然後在彈出的視窗中選“Use Connection String”,單擊“Build”按鈕,在“資料連結屬性”視窗中選擇適當的驅動引擎,並設定相應的串連參數就可以了。點擊“確認”後,系統將自動產生串連串,顯示在Object

通過HOOK來注入DLL的一點心得!!!!!!

這段時間研究了一下注入技術,今天有空來寫一下心得,以免以後忘記.用HOOK進行注入的思路主要如下:1.首先,寫一個鉤子,放在DLL中,然後,匯出設定鉤子的函數SetHook。2.在我的應用程式中,通過FindWindow來找出要注入的目標進程的ThreadId;3.在自己的程式中調用SetHook,傳入ThreadId;4.在SetHook中設定目標進程的線程鉤子,設定完成之後,通過

GetLastError 錯誤號碼意義!1001—2000

 〖1001〗-遞迴太深;棧溢出。 〖1002〗-視窗無法在已發送的訊息上操作。 〖1003〗-無法完成此功能。 〖1004〗-無效標誌。 〖1005〗-此卷不包含可識別的檔案系統。請確定所有請求的檔案系統驅動程式已載入,且此卷未損壞。 〖1006〗-檔案所在的卷已被外部改變,因此開啟的檔案不再有效。 〖1007〗-無法在全螢幕模式下運行請求的操作。 〖1008〗-試圖引用不存在的令牌。 〖1009〗-配置註冊表資料庫損壞。 〖1010〗-配置登錄機碼無效。 〖1011〗-無法開啟配置登錄機碼。

DirectSound學習指南之協作層級

 協作層級   因為Windows是一個多任務環境,多個應用程式可能在任意時刻對一個裝置磁碟機進行操作。雖然使用協作層級,DirectX仍然確保每個應用程式不能以錯誤方式或在錯誤時刻訪問裝置。每個DirectSound應用程式都有一個協作層級,用於決定它被允許訪問裝置的程度。   在建立一個裝置對象後,你必須使用IDirectSound8::SetCooperativeLevel 方法為這個裝置設定協作層級。如果你不這麼做,將無法聽到聲音。下面這個例子為DirectSound裝置設定了協作層級,

通過遠程線程注入DLL!心得!

1.       通過GetModuleHandle定位LoadLiabrary在Kernel32.dll中的虛擬位址!!(根據jerry 牛人的說法,就是kernel32.dll在任何進程中載入的位置都是一樣的)2.       提升當前進程的許可權,使其許可權提升為debug的許可權,這樣才能在目標進程中分配虛擬空間和讀寫虛擬空間操作。3.      

學習COM心得!

typedef unsigned short UInt16;typedef unsigned int UInt32;//UDP.H interface out in parameterstypedef struct{ UInt16 port; UInt32 addr;} StunAddress4;// Define enum with different types of NATtypedef enum //NAT類型{ StunTypeUnknown=0,

MFC序列化追憶之旅

工作以來一直在做.net方面的程式,以前自學的C++和MFC許久未碰了。今天恰逢周末休息,閑來翻看一本MFC的書,對序列化(Serialize)部分又研究了一番。在這次故地重遊之旅中,我又再一次讚歎於Microsoft Application Framework小組專家們的聰明才智,為開發人員創造出了一個如此優秀的Framwork。   人們都說,“發表是最好的回憶”,我也不妨在此回憶一番,記錄下這“MFC 序列化追憶之旅”。  下面是我寫的一個MFC

用VC實現PC並行連接埠數字資訊的輸入/輸出

目前,在實驗室和工業應用的各種控制系統中,串口是常用的電腦與外部控制系統之間的資料轉送通道。由於串列通訊方便易行,所以應用廣泛。但是使用串列通訊,在即時性、速度、資料量等方面受到限制。而電腦的並行連接埠傳輸資料時是一次性傳送8個位(一個位元組)或更多,由於傳輸量較大,因此資料的傳輸速度要比串口快,在許多必須講究傳輸速度的控制系統裡,用PC並行連接埠與之串連就是一個很好的解決方案。  本文介紹PC並行連接埠在單片機等控制系統中作為數字I/O口的應用。在控制系統中,有許多的數字開關量、數字控制訊號、

擷取遠程網卡MAC地址

首先在標頭檔定義中加入#include "nb30.h"#pragma comment(lib,"netapi32.lib")typedef struct _ASTAT_{ ADAPTER_STATUS adapt; NAME_BUFFER    NameBuff[30];} ASTAT, * PASTAT;就可以這樣調用來擷取遠程網卡MAC地址了:CString GetMacAddress(CString sNetBiosName){    ASTAT Adapter;     NCB

調試技巧:如何以數組的方式查看一個指標

對於下面兩個變數:int *p = new int[10];int q[10];在watch視窗中查看有不同的效果,查看p的時候可以看到一個地址,展開+號只能看p[0]的值;查看q的時候也可以看到一個地址,但是展開+號可以看q[0]-q[9]的值。相比之下q的查看方式比p要方便多了。那麼有沒有辦法以q的方式查看p呢,這就是本文要介紹的一個調試技巧。首先我們需要寫如下兩行代碼:typedef int inta[10];inta *_int;       然後在watch視窗敲入一行:_int=p 

combobox控制項的使用

combo box控制項。1.你在編輯狀態下點那個控制項的向下的三角形,就出冒出來一個可以調高度的東東。將高度調高,否則在執行時會不能顯示下拉選項。2.為combo box添加選項,在編輯狀態下選combo box控制項的屬性,選Data標籤,在編輯框中添加選項,按Ctrl-Enter來添加下一個選項。3.為combo box添加變數  combo box有兩個變數,CComboBox類變數和CString變數。  CComboBox變數用來設定combo

漸進式掃描 為你講解幾個基本SQLPLUS命令

本文章幫你充分認識SQLPLUS命令。 remark:告訴SQLPLUS接下來的文字是注釋,不是命令。 set haedsep:標題分隔字元標識一個告訴SQLPLUS將一個標題分為兩行或更多行的字元。 ttitle:設定報表每一頁的頭標題。 btitle:設定報表每一頁的尾標題。 column:給SQLPLUS各種關於列的標題、格式和處理的指令。 break on:告訴SQLPLUS在報表的各部分間插入空格,或者將小計和總計斷開。 compute sum:令SQLPLUS計算小計。 set

總頁數: 61357 1 .... 13915 13916 13917 13918 13919 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.