2011年5月23日 星期一

C#呼叫C++ dll (unmanaged)

這個方法不記下來,我怕我又會忘記。
在C++部份,先產生一個win32dll專案。接著把你想要的程式碼加入檔案中。
例如:
 #include<stdlib.h>
int string_length(char* str)
{
    int size = strlen(str);
    TCHAR unicode_string[50];
    mbstowcs(unicode_string, str, size+1);
    OutputDebugString(unicode_string);
    return strlen(str);
}
接下來在C#部份如下:
using System.Runtime.InteropServices;

namespace c_sharp_call_dll
{
    public partial class Form1 : Form
    {
        [DllImport("sample_cpp_dll.dll")]
        static extern int string_length(string str);

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int i = 15;
            MessageBox.Show(string_length(textBox1.Text).ToString());
        }
    }
}

沒有留言:

張貼留言