Powerbuilder에서 '클래식'DLL C# (COM이 아님)을 호출해야합니다. 이 예제를 기반으로하는 C# I의 DLL 생성은 RGiesecke dll Export template입니다.Powerbuilder에서 C# DLL (RGiesecke dll 내보내기 템플릿)을 호출합니다.
그리고 Powerbuilder에서 DLL을 호출 할 수있었습니다.
는하지만 '참고로'문자열을 전달하려는 : 그래서 나는 함수 선언에 '심판'을 추가 :
[DllExport("ExpTest", CallingConvention = CallingConvention.Winapi)]
[return: MarshalAs(UnmanagedType.LPWStr)]
public static string ExpTest([MarshalAs(UnmanagedType.LPWStr)] ref string sText, out int length)
{
MessageBox.Show(sText, "ExpTest");
length = sText.Length;
//sText = "def";
return sText;
}
이 함수를 호출 파워 빌더에서 코드 :
String ls_arg, ls_ret
ls_arg = "abc"
long ll_len
ls_ret = ExpTest(ls_arg, ll_len)
messagebox(ls_arg, ls_ret)
(문자열 'sTest'선언에 'ref'없이) 원래의 functio를 호출하면 "abc"를 반환합니다. '문자열 sTest'선언에 'ref'를 추가하면 '중국어 문자'가 반환됩니다.)
아무도 도와 줄 수 있습니까? 더 나은 방법 : Powerbuilder에서 문자열 배열을 (ref로) 전달하는 방법은 무엇입니까?
도움 주셔서 감사합니다.
Msc. 기능 문자열 ExpTest (REF 문자열 값, REF 긴 렌) LIBRARY "Classicdll.dll"
- - 기능 문자열 ExpTest (문자열 값, REF 긴 렌) LIBRARY :
는 다음과 같이 파워 빌더에서 외부 함수를 정의하는 시도 "Classicdll.dll"
- 둘 다 ALIAS FOR "ExpTest; Ansi"...
PoweBuilder에서. "로컬 외부 함수"에서 어떻게 처리됩니까? –
안녕하세요 Eduardo, 게시물에 사용 된 선언문을 추가했습니다 .... – MSC