private void button2_Click(object sender, EventArgs e) { int send = 999; int rtn = intReturn(send); MessageBox.Show(rtn + " 리턴값 수신, 호출완료"); // 문자 string sendstr = "sendstring C#"; //IntPtr p = strReturn(sendstr); //string c = Marshal.PtrToStringAnsi(p); string rtnStr = strReturn(sendstr); //string rtnStr = p + "///test"; // 형변환 오류 MessageBox.Show("string test: " + rtnStr); typeExp testTemp = new typeExp(); testTemp.byteTest = new byte[64]; testTemp.uintTest = new uint[4]; testTemp.strTest = "testtest c#"; testTemp.byteTest[0] = byte.Parse("9"); testTemp.uintTest[0] = uint.Parse("3"); int rtnst = stReturn(ref testTemp); MessageBox.Show("struct test: " + testTemp.strTest + "," + testTemp.uintTest[0]); int[] intTemp = new int[10]; int rtnary = aryReturn(intTemp); MessageBox.Show("arry test: " + intTemp[0] + "," + intTemp[1]); IntPtr pintp = intpReturn(); string cintp = Marshal.PtrToStringAnsi(pintp); MessageBox.Show("intp test: " + cintp + "," + pintp); }
extern public static int stReturn(ref typeExp st);