○文字列を受け渡しできるDLL


//testdll.dllとして作成

#include <stdio.h>
#include <windows.h>

extern "C" __declspec(dllexport) void test(char*str){
	char buf[1024];
	strcpy(buf,str);
	sprintf(str,"--%s--",buf);
	MessageBox(NULL,str,"",1);//きちんと値が渡っているか確認用
}


■.net Framework (VB)からの読み出し(なぜかByValです)

    <System.Runtime.InteropServices.DllImport("testdll")> _
        Private Shared Sub test(ByVal buf As System.Text.StringBuilder)
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim buf As New System.Text.StringBuilder(1024)
        buf.Append("いなば")
        test(buf)
        MsgBox(buf.ToString())
    End Sub

▼処理結果

--いなば--
--いなば--



▲トップページ > Windows と C++