다음은 이전 질문에 대한 후속 작업입니다. 일부 Vb.net 코드를 C#으로 변환하려고합니다. com 객체가 만들어지고 (atlDirectorObject.atlDirector) 매개 변수별로 다른 com 객체 (atl3270Tool)를 만드는 데 사용됩니다. atl3270Tool이 C# 버전에서 생성되지 않습니다. 객체 배열을 통해 atl3270Tool을 참조하려고 시도하는 잘못된 경로가 있습니까?C에서 다른 com 객체를 사용하여 com 객체 만들기
'working vb code
Dim atl3270Tool
Dim ErrMsg As String
Dim atlDirectorObject = CreateObject("atlDirectorObject.atlDirector")
atlDirectorObject.CreateTool("3270", 1, True, True, 0, atl3270Tool, ErrMsg)
'atl3270Tool is working com object at this point = success
//non-working c# code
object atl3270Tool = null;
string ErrMsg = null;
object atlDirectorObject = Activator.CreateInstance(Type.GetTypeFromProgID("atlDirectorObject.atlDirector"));
//atlDirectorObject is a com object now
//attempt to reference atl3270Tool inside an object array
object[] p = { "3270", 1, true, true, 0, atl3270Tool, ErrMsg };
Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(atlDirectorObject, null, "CreateTool", p, null, null, null, false);
//>>>>>>>>atl3270Tool is still null at this point<<<<<<<<<
예, 잘못하고 있습니다. 호출 후 atl3270Tool = p [5] *를 사용하십시오. CopyBack 인수를 사용해야합니다. 이 코드를 작성하기 위해 vb.net을 사용하라는 권고를 받았을 때 나는 분명히 * 그 *를 의미하지는 않았습니다. –