일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Javascript
- c#
- 웹
- Ajax
- 자바스크립트
- 챗지피티
- Python
- vps
- 아두이노 기초강좌
- 가상서버
- 파싱
- 프로그램
- 자동블로그
- cocos2d-x
- 그누보드
- 쿠팡파트너스
- 자동글쓰기
- 아두이노
- 아두이노 강좌
- 무료일러스트
- 아두이노 초보
- php
- 파이썬
- ChatGPT
- vultr
- flex
- HTML
- Php공부
- 자동포스팅
- 워드프레스
Archives
- Today
- Total
플밍
go 언어에서 dll 만들고 c#에서 사용하기 본문
go 언어로 dll 만들기 [ request.go ]
package main
import (
"C"
)
func PrintTest(arg *C.char) *C.char {
input := C.GoString(arg)
return C.CString("입력한 값은 " + input + " 입니다")
}
func main() {
}
문자열을 입력받아 다른문자열과 합하여 리턴해 주는 함수입니다.
dll 로 빌드하기
$ go build -o request.dll -buildmode=c-shared
c# 에서 사용하기
위에서 생성된 request.dll 을 c# 프로젝트로 복사한 후 아래와 같이 코딩합니다.
// dll 선언
[DllImport("request.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
public static extern IntPtr PrintTest(byte[] data);
// 사용하기
var pStr = PrintTest(Encoding.Default.GetBytes("병아리"));
string str = Marshal.PtrToStringAnsi(pStr);
Console.WriteLine(str); // "입력한 값은 병아리 입니다" 가 출력됨
"병아리" 를 입력변수로 넣고 실행하면
"입력한 값은 병아리 입니다" 가 출력됩니다.
Comments