powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как использовать .NET через COM
2 сообщений из 2, страница 1 из 1
Как использовать .NET через COM
    #38526808
Rostislav D. Kudryashov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Об этом есть статья
http://www.west-wind.com/presentations/VfpDotNetInterop/DotNetFromVFP.asp
но по этому образцу у меня не получается. Вот что я пока что сотворил.
Выполнение пунктов 1 и 2 из комментариев в исходнике проходит без запинки. Но когда залезаю в среду Фокса и даю команду по пункту 3, выскакивает сообщение
OLE Error Code 0x80070002: The system cannot find the file specified.

Этот же DotNetAsCOM.dll отлично вызывается из MS Visual Basic 6, правда, там требуется включить в проект ссылку на библиотеку DotNetAsCOM.tlb. И бэйсиково exe-приложение ActiveX с вывеской формы из Фокса нормально вызывается.
Библиотека типов DotNetAsCOM.tlb распознаётся в Фоксе через ObjectBrowser, а вот .dll за COM библиотеку не признаётся.
Делал пробы в .NET 2 и 4, с ключом x86 и без.
Так что у меня не так?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
// 1. csc /t:library DotNetAsCOM.cs
// 1. csc /t:library /platform:x86 DotNetAsCOM.cs
// 2. regasm DotNetAsCOM.dll /tlb:DotNetAsCOM.tlb
// 3. o = CREATEOBJECT ('DotNetAsCOM.CSharpCalc')

using System;
using System.Runtime.InteropServices;

namespace DotNetAsCOM
{
  [ClassInterface(ClassInterfaceType.AutoDual)]
  [ProgId("DotNetAsCOM.CSharpCalc")]
  public class CSharpCalc
  {
    public CSharpCalc() { }
    public int Add(int x, int y) { return x + y; }
    public int Subtract(int x, int y) { return x - y; }
  } // CSharpCalc
} // DotNetAsCOM
...
Рейтинг: 0 / 0
Как использовать .NET через COM
    #38526953
Rostislav D. Kudryashov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rostislav D. Kudryashov, поступили сведения, что регистрировать надо командой
regasm DotNetAsCOM.dll /codebase /tlb:DotNetAsCOM.tlb
а для полного успеха надо назначить сборке (assembly) некое строгое имя (strong name)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как использовать .NET через COM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]