본문 바로가기
programming language/Autohotkey

Autohotkey 에서 C# 으로 만들어진 dll 사용하기

by __observer__ 2017. 12. 27.
반응형

Autohotkey 에서 C# 으로 만들어진 dll 파일을 사용하려 시도 해봤는데 정상적으로 사용이 안되더군요. 


그래서 구글링을 좀 해보니 역시나 해결 방법이 있더군요. 


일단 아래 주소에서 CLR.ahk 파일을 다운로드 받습니다.


https://autohotkey.com/boards/viewtopic.php?t=4633


CLR.ahk 의 직접적인 링크는 다음과 같습니다.


https://autohotkey.com/boards/codeboxplus/download/26398-1


CLR.ahk 는 Lexikos 라는 분이 만들었습니다. 현재 배포되는 Autohotkey 버전의 개발자이시기도 합니다.


다음으로 제가 테스트 해본 C# 코드는 아래와 같습니다. 


아래 예에서 사용한 Autohotkey 와 csc.exe 는 32 비트 버전 입니다.

-test.cs-


using System;

namespace myDLL

{

public class Calculator

{

public int  Sub(int a, int b)

{

return a - b;

}

public int Add(int a, int b)

{

return a + b;

}

public int increase(int var)

{

var++;

return var;

}

}

}


이제 위 C# 코드를 라이브러리로 만들기 위해 cmd 창에서 명령어를 써 줍니다.


csc.exe /target:library test.cs


위 명령에 의해 test.dll 파일이 만들어 집니다.


다음으로 아래와 같이 C# 으로 만들어진 test.dll 의 함수를 Autohotkey 에서 사용 합니다.


#Include CLR.ahk


asm := CLR_LoadLibrary("test.dll")

obj1 := asm.CreateInstance("myDLL.Calculator")


MsgBox % obj1.increase(125)

MsgBox % obj1.Add(12,34)

MsgBox % obj1.Sub(12,34)


저는 다음과 같이 정상적으로 동작하더군요. 

테스트를 해보니 static 으로 만들어진 멤버 함수의 경우 정상적으로 동작하지 않았습니다.


위 포럼 페이지에서의 글을 보니 Autohotkey 에서 C# 코드 형태를 라이브러리로 만들수도 있는것 같더군요.


반응형

댓글