準備
(なし)
デザイン
1. フォーム (Form1) にボタン (button1) を配置します。
サンプルコード (C#)
// 名前空間の追加 using System.Runtime.InteropServices; // DLL の宣言 [DllImport("msvcr71.dll", CharSet = CharSet.Ansi)] private static extern int sprintf(StringBuilder so, String sf, int val); // コード private void button1_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); sprintf(sb, "VAl = %d", 15); Console.WriteLine(sb.ToString()); }
サンプルコード (VB.NET)
' 名前空間の追加 Imports System.Text ' DLL の宣言 Public Declare Function sprintf Lib "msvcr71.dll" (ByVal so As StringBuilder, ByVal sf As String, ByVal val As Integer) As Integer ' コード Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim sb As New StringBuilder() sprintf(sb, "VAl = %d", 15) Console.WriteLine(sb.ToString()) End Sub
サンプルコード (C++/CLI)
この言語にはサンプルコードはありません。
解説
msvcr71.dll の sprintf を使用して、メッセージを作成します。尚、実行時に次のようなメッセージが表示されて、コードの実行が一時停止しますが、続行できます。
----------
PInvoke 関数 'WindowsFormsApplication16!WindowsFormsApplication16.Form1::sprintf' がスタックを不安定にしています。PInvoke シグネチャがアンマネージ ターゲット シグネチャに一致していないことが原因として考えられます。呼び出し規約、および PInvoke シグネチャのパラメーターがターゲットのアンマネージ シグネチャに一致していることを確認してください。
結果
IDE の [出力] タブに出力されます。(C#, VB.NET)
VAl = 15