SyntaxHighlighter

2013-06-05

Call Win32 DLL from C#

參考網址:

Win32 APIやDLL関数を呼び出すには? - http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html

C# Win32 API および DLL の利用
http://typea.info/tips/wiki.cgi?page=C%23+Win32+API+%A4%AA%A4%E8%A4%D3+DLL+%A4%CE%CD%F8%CD%D1

[C#] 使用 Win32 API 來進行控制其他程式視窗行為表現
http://www.dotblogs.com.tw/nobel12/archive/2009/10/05/10915.aspx

(筆記) 如何使用C#使用Win32 DLL? (.NET) (C#) (Windows Form)
http://www.cnblogs.com/oomusou/archive/2011/02/13/cs_pinvoke.html

Floppy Raw Read Driver for Windows


fdrawcmd.sys

請到下面網址抓取相關工具
http://simonowen.com/fdrawcmd/


有了Driver,你也可以順便抓取其他工具來讀寫資料
推薦下面兩個:


SAMdisk - http://simonowen.com/samdisk/
跟上面的驅動是同一個作者,簡單的讀寫還沒問題,至於想要看讀寫出來的東西的內容...還是看下面另一個吧


HxC Floppy Emulator - http://hxc2001.free.fr/floppy_drive_emulator/
這傢伙可強大了,不止可以讀寫磁碟機,還可以幫你搞定裡面的檔案內容
但是有點小問題...他不會幫你搞定Boot Sector
所以原始磁碟的Boot Sector沒有資料但是其實裡面有東西的時候...
自己做個同樣大小的假磁碟然後把Boot Sector拷貝過去,那東西就讀的出來了XD

2013-06-04

ASCII String/Char to Byte

String -> Byte

string sTest = "TEST"
byte[] bTest = Encoding.ASCII.GetBytes(sTest);


Char -> Byte

Char cTest = 'A'
byte bTest = Convert.toByte(cTest);


Convert BitArray to Byte

byte ConvertToByte(BitArray bits) 
{
	if (bits.Count != 8) { throw new ArgumentException("bits"); }     
	byte[] bytes = new byte[1];     
	bits.CopyTo(bytes, 0);     
	return bytes[0]; 
}

[C#]string,char,byteの相互変換


文字を表現する各種データ型の変換方法です。
Stringから他の型に変換する場合は、文字コードの指定が必要となります。

string -> char

string str = "hello world";
 
//文字列をcharの配列に変換する
char[] charArray = str.ToCharArray();
 
//文字列を、1文字づつcharとして処理する
foreach (char c in str) {
    Console.WriteLine( c );
}
 
//文字列のn文字目をcharとして取得する
int n = 5;
char c = str[n];


char -> string

char c = "あ";
string s = c.ToString();


string -> byte

byte[] bytesArray = xxx;
 
// SJISのbyte配列をstringに変換
str = System.Text.Encoding.GetEncoding( 932 ).GetString( bytesArray );
 
// UTF-8のbyte配列をstringに変換
str = System.Text.Encoding.UTF8.GetString( bytesArray );



byte -> string

string str = "hello world";
byte[] bytesArray;
 
// stringをSJISのbyte配列に変換
byte[] bytesArray = System.Text.Encoding.GetEncoding( 932 ).GetBytes( str );
 
// stringをUTF-8のbyte配列に変換
byte[] bytesArray = System.Text.Encoding.UTF8.GetBytes( str );



byte -> char

byte[] bytesArray = ...;
char[] charArray  = System.Text.Encoding.GetEncoding( 932 ).GetString( bytesArray ).ToCharArray();



char -> byte

char c = "あ";
byte b = Convert.ToByte( c );

人気の投稿