Вобщем ситуация такова. Нужно подключить dll написанную на C# к проекту Builder 6. Нашел пример для Delphi ( http://krez0n.org.ua/archives/248?rcommentid=503&rerror=invalid-request-cookie&rchash=765ad2e79491e151602e64b2a2a4a37c#comment-504 ), попробовал - работает. Проделал все манипуляции с созданием DLL, настройкой и регистрацией в винде. Builder увидел dll и подключил. Обращаться к IMyInterface получается, его видит. А вот дальше сделать так как в примере не выходит..(((
Как можно перевести этот пример кода на с делфи на билдер?
| Код | procedure TForm1.btnSumClick(Sender: TObject); var intfRef: IMyInterface; result: Integer; begin intfRef := CreateComObject(CLASS_TestClass) as IMyInterface; result := intfRef.Sum(StrToInt(Edit1.Text), StrToInt(Edit2.Text)); lblSum.Caption := IntToStr(result); end;
|
Я пробую так, посмотрел в хелпе Buildera
| Код | void __fastcall TForm1::Button1Click(TObject *Sender) { IMyInterface *initfRef;
initfRef = CreateComObject(CLSID_TestClass &IID_IMyInterface); }
|
Крутил и так и так.... не запускается пишет| Код | [C++ Error] Unit1.cpp(23): E2093 'operator&' not implemented in type '_GUID' for arguments of the same type
|
пробую еще так запускается но при выполнении обработчика вылетает ошибка при выполнении....
| Код | void __fastcall TForm1::Button1Click(TObject *Sender) { IMyInterface *initfRef; initfRef->Sum(5,5); }
|
Собственно пытаюсь вызвать Sum из этого кода в либе.
| Код | public interface IMyInterface { int Sum(int x, int y); string AppendText(string text); }
[ClassInterface(ClassInterfaceType.None)] public class TestClass : IMyInterface { //просто суммируем два числа public int Sum(int x, int y) { return x + y; }
|
Посоветуйте пожалуйста выход из ситуации. Я с COM-мами еще не сильно дружу, так как только вот первый день воюю, а нужно разрулить быстро...
|