Имеется COM объект к которому надо достучаться. Пишу программу на VB6
'early binding
Dim App1 As NTNMR.Application
Dim Path As String
Set App1 = New NTNMR.Application
Path = App1.GetActiveDocPath
late binding
Dim App As Object
Dim pathToDoc As String
Set App = GetObject(, "NTNMR.Application")
pathToDoc = App.GetActiveDocPath
имею
Path = “”
pathToDoc = “C:\\NTNMR\\data\\1pulse F1.tnt”
второй вариант правильный, но почему не работает раннее связываение?
На самом деле хочу использовать C#.
//early binding
NTNMR.Application oApplication = new NTNMR.Application();
string StrActiveDocPath = oApplication.GetActiveDocPath();
//late binding
Type AppType = Type.GetTypeFromProgID("NTNMR.Application");
object ObjectApp = Activator.CreateInstance(AppType);
object[] parameter1 = new object[0];
object oo = AppType.InvokeMember("GetActiveDocPath", BindingFlags.InvokeMethod, null, ObjectApp, parameter1);
в обоих случая получаю пустую строку.
В чем дело?
Здравствуйте, Vasvasvas2004, Вы писали:
V>Имеется COM объект к которому надо достучаться. Пишу программу на VB6
V>V> 'early binding
V> Dim App1 As NTNMR.Application
V> Dim Path As String
V> Set App1 = New NTNMR.Application
V> Path = App1.GetActiveDocPath
V>
Референс в проекте VB6 на NTNMR добавлен?
V> //late binding
V> Type AppType = Type.GetTypeFromProgID("NTNMR.Application");
V> object ObjectApp = Activator.CreateInstance(AppType);
V> object[] parameter1 = new object[0];
V> object oo = AppType.InvokeMember("GetActiveDocPath", BindingFlags.InvokeMethod, null, ObjectApp, parameter1);
V>[/c#]
V>в обоих случая получаю пустую строку.
V>В чем дело?
Здравствуйте, Vasvasvas2004, Вы писали:
V>честно говоря не знаю. Есть прибор, у него программа NTNMR, которая также через COM интерфейс обеспечивает доступ к прибору с внешней программы. Некоторые функции из этого интерефейса работают везде и из C#, и из VB6, и с поздним, и ранним связыванием. А вот некоторые только из VB6 с поздним связыванием.
Попробуй достучаться следующим образом
http://support.microsoft.com/kb/316126
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Vasvasvas2004, Вы писали:
V>>честно говоря не знаю. Есть прибор, у него программа NTNMR, которая также через COM интерфейс обеспечивает доступ к прибору с внешней программы. Некоторые функции из этого интерефейса работают везде и из C#, и из VB6, и с поздним, и ранним связыванием. А вот некоторые только из VB6 с поздним связыванием.
А>Попробуй достучаться следующим образом
А>http://support.microsoft.com/kb/316126
попробую, хотя с ходу не совсем понятно в чем фишка зарыта. сейчас другой проект горит и отрывать кабеля не хочется. как попробую, так напишу, хотя возможно компания ответит.