- 題名: コンソールプログラミングのウィンドウハンドルについて
- URL: http://spaces.msn.com/csamura/
- 日時: 2006/05/18 15:44:29
- ID: 15825
- この記事の返信元:
- (なし)
- この記事への返信:
- [15826] Re[1]: コンソールプログラミングのウィンドウハンドルについて2006/05/18 16:28:26
- [15828] Re[1]: コンソールプログラミングのウィンドウハンドルについて2006/05/18 16:46:52
- ツリーを表示
分類:[.NET]
tar32.dll を使って、*.gz のファイルを解凍するプログラムを作っています。
そのとき、P/Invoke で呼び出す API の中で、引数にウィンドウハンドルが必要になります。
ここで、コンソールのウィンドウハンドルを聞いてくる部分をどう処理すればいいのか疑問に思いました。
私は今のところ、(IntPtr)null を渡していますが、果たしてそれが正しいのかどうか、教えてください。
(IntPtr)null を渡しても解凍はできているようですが、これが正しい処理なのかどうか不安になりました。
以下に私の書いたコードを示します。
using System;
using System.Runtime.InteropServices;
public class ExtGZIP
{
[DllImport("tar32.dll", SetLastError=true, CharSet=CharSet.Ansi)]
static extern int Tar(IntPtr _hwnd, string _szCmdLine, string _szOutput, int _dwSize);
public ExtGZIP()
{}
public void GZIPExpand(string srcPath)
{
string command = @"-x "+ srcPath;
// このメソッドの最初の引数 (IntPtr)null は正しいのでしょうか?
int ret = ExtGZIP.Tar((IntPtr)null, command, null, 0);
Console.WriteLine(ret);
}
[STAThread]
static void Main(string[] args)
{
ExtGZIP ez = new ExtGZIP();
ez.GZIPExpand(@".\bin.gzip");
}
}