SQLの窓

2010年06月17日


VB.net : Win32API 呼び出し : GetWindowsDirectory

StringBuilder 側からメモリの拡張は容易ですが、GetWindowsDirectory に
引き渡す長さ以上の文字列が戻って来る場合は異常終了します
Imports System.Runtime.InteropServices	' DllImport

Module MyModule

' UINT GetWindowsDirectory(
'   LPTSTR lpBuffer,  // Windows ディレクトリが格納されるバッファ
'   UINT uSize        // ディレクトリバッファのサイズ
' );

<DllImport("Kernel32.dll", CharSet:=CharSet.Unicode)> _
Private Function GetWindowsDirectory( _
  ByVal lpBuffer As System.Text.StringBuilder, _
  ByVal uSize As System.UInt32 _
) As System.UInt32
End Function

Sub Main()

	' C:\WINDOWS を取得します

	Dim lpBuffer As System.Text.StringBuilder = New System.Text.StringBuilder(128)
	Dim uRet As System.UInt32

	uRet = GetWindowsDirectory( lpBuffer, 128 )

	' uRet は 10 です
	Console.WriteLine( uRet )
	Console.WriteLine( lpBuffer )

	' Length プロパティで切り捨てられて C:\WIN になります
	lpBuffer.Length = 6
	Console.WriteLine( lpBuffer )

End Sub

End Module

関連する Microsoft ドキュメント

文字列に対する既定のマーシャリング
値型に対する既定のマーシャリング


タグ:Win32API
posted by lightbox at 2010-06-17 20:22 | VB.NET : テクニカル | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり