COBOL (비 관리 코드)에서 호출해야하는 C# 라이브러리를 개발 중입니다. 그래서 이러한 목적으로 COM interop을 사용하고 있습니다.COM interop : 변수 개수 매개 변수
통신을 중재하는 계층 "ModuleLanucher"를 만들었습니다. 나는이 명령에 의해이 ModuleLanucher 라이브러리를 등록 : 내가 foo 함수에서 매개 변수의 구체적인 수있는 경우
regasm ModuleLanucher.dll /codebase
TLBEXP Modulelanucher.dll
모든 것이 잘 작동합니다. (아래 언급)
불행히도 내 함수 foo는 다양한 인수를 필요로합니다.
namespace NMSPC
{
class ModuleLanucher
{
void foo(string moduleName, params object[] args)
{
//call some dlls with args as parameteres
}
}
}
이 COBOL 코드에서 내가 COM의 함수 foo를 호출하고 있습니다 : 이 내 코드의 스케치입니다 나는이 COBOL 코드에서 foo는 메서드를 호출 할 때
VCCOMServer is class "$OLE$NMSPC.ModuleLanucher"
invoke VCCOMServer "new" returning anInstance
invoke anInstance "foo" using MODULENAME, PARAM01, PARAM02, PARAM03, PARAM04
, 나는이 오류가 발생합니다 :
예외 65538은 oleexceptionmanager 클래스에 트랩되지 않습니다. 설명 : "OLE 매개 변수 개수 불일치" (8002000E) : 매개 변수 개수가 잘못되었습니다.
가변 개수의 인수로 COM 개체 기능을 사용할 수 있습니까?
제안 해 주셔서 감사합니다.