Google Groupes n'accepte plus les nouveaux posts ni abonnements Usenet. Les contenus de l'historique resteront visibles.

Через одно место... но работает! :-)

20 vues
Accéder directement au premier message non lu

Michael Drozdov

non lue,
23 mai 2008, 02:13:2723/05/2008
à
Hi All,

Hе знаю насколько интересно, но вот попробовал Framework-механизмы пользования
объектов:

1) через небольшую прослойку C++кода (Unmanaged API) в виде Win32API-dll
(ClrHost.dll), позволяющую
- загрузить некоторую/указанную NET. Framework-сборку
- создать экземпляр её некоторого класса
- получить IDispatch-интерфейс последнего и передать его клиенту

2) небольшой C#-код в виде NET. Framework-сборки (wwDotNetBridge.dll),
позволяющей:
- создать экземпляр класса из указанной NET. Framework-сборки и передать его
клиенту
- далее, клиент может используя эту ссылку обратиться к методам/свойствам
экземпляра класса, через некоторый 'обобщённый интерфейс' (серию
Invoke-методов, реализованных в классе этой сборки)

Подробности/код об этом, можно посмотреть здесь:
http://www.west-wind.com/WebLog/posts/104449.aspx там же и исходный код
http://www.west-wind.com/files/tools/misc/clrhost.zip

Этот способ попробовал как механизм использования классов NET. Framework
попробовал из-под VFP на задачке извлечения данных из xlsx-файлов MS Excel
2007 используя формат Open XML о чём более подробно здесь:
http://vfpdev.narod.ru/docs/xlstbl_r.html#getxml . и приведённый там C#-код
попробовал использовать через указанный выше механизм.

Соответствующий VFP-код привёл в этой ветке:
http://forum.foxclub.ru/read.php?28,333658,page=2 (ник MichaelD) не всё из
C#-кода удалось написать т.с. напрямую, пришлось изобретать обходные пути, но
тем не менее добился, что приведенный там код работает!

P.S. Как понимаю, подход/код, описанный в
http://www.west-wind.com/WebLog/posts/104449.aspx может быть использован не
только из-под VFP, а и из любого средства программирования, которому NET.
Framework недоступен непосредственно.

Best regards.
Михаил Дроздов, ИВС Софт, Пермь, Россия
[Michael Drozdov, ICS Soft, Perm, Russia]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
My Page: http://vfpdev.narod.ru/
ICS Page: http://www.ics.perm.ru/ [on Russian]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Мои наилучшие пожелания

Michael Drozdov

non lue,
24 mai 2008, 03:00:3024/05/2008
à
Hi, All!

Fri May 23 2008 11:13, Michael Drozdov wrote to All:
MD> From: "Michael Drozdov"
...
MD> Соответствующий VFP-код привёл в этой ветке:
MD> http://forum.foxclub.ru/read.php?28,333658,page=2 (ник MichaelD) не всё
MD> из C#-кода удалось написать т.с. напрямую, пришлось изобретать обходные
MD> пути, но тем не менее добился, что приведенный там код работает!

В xlsxtbl.zip на http://vfpdev.narod.ru/util_r.html - xlsxtbl.zip [23.05.2008]
(890KB) - код XSLT, C#, VFP 9.0 (и выше), JavaScripr - позволяющий выбирать
таблицы данных из xlsx-файлов у приложения Excel из MS Office 2007 используя
структуру данных формата Open XML.

... добавил подкаталог - VfpByUseFramework_20 - примеры VFP-кода
(xlsx2htm.prg, xlsx2xml.prg) преобразования таблиц из xlsx-файлов в
html/xml+xds с использованием классов из MS .NET Framework 2.0 (ссылки на
подробности используемой техники см. в файле ReadMeRu.txt этого подкаталога)

Файл ReadMeRu.txt к xlsxtbl.zip:
---
Код к статье: http://vfpdev.narod.ru/docs/xlstbl_r.html - Как получить таблицу
данных из xlsx-файла у приложения Excel из MS Office 2007 используя структуру
данных формата Open XML?

Содержание подкаталогов:

- inputXmlXsd примеры xml+xsd данных, которые были использованы как
начальные/исходные
- XLSX содержит файлы Книга1.xlsx (построена на основе
inputXmlXsd\(Расходы.xml+Расходы.xsd)) и Книга2.xlsx (построена на основе
inputXmlXsd\(result.XML+result.XSD)), а в подкаталогах ..\Книга1\ и ..\Книга2\
данные, распакованные из файлов Книга1.xlsx и Книга2.xlsx соответственно
- solVS_NET2005_Framework_20 - содержит C#-код консольных приложений:
..\testTranse - пример кода простого одиночного XSLT-преобразования
..\xlsx2html - пример кода для получения html-представления по таблице из
xlsx-файла
..\xlsx2xml - пример кода для получения xml+xsd-файлов по таблице из
xlsx-файла
- codeUse_MSXML40_SP2 - примеры кода VFP 9.0 SP1 с использованием MSXML 4.0
SP2 и серия командных файлов с использованием утилиты msxsl.exe, позволяющие
извлечь данные из XML-файлов в формате Open XML и получить из них
html-представление и/или xml-данные + xsd-схему как таблицу. Там же VFP-код
для преобразования полученных xml-данных в VFP-cursor.
- VfpByUseFramework_20 - примеры VFP-кода преобразования таблиц из xlsx-файлов
в html/xml+xds с использованием классов из MS .NET Framework 2.0 (ссылки на
подробности используемой техники см. в файле ReadMeRu.txt этого подкаталога)
- ClrHost - VC++ код в проекте MS VS.NET 2005 для создания clrhost.dll, по
сравнению с оригиналом (см. ссылки в файле ReadMeRu.txt подкаталога
VfpByUseFramework_20), слегка подправлено диагностическое сообщение о
возникающих ошибках.
---

MD> P.S. Как понимаю, подход/код, описанный в
MD> http://www.west-wind.com/WebLog/posts/104449.aspx может быть использован
MD> не только из-под VFP, а и из любого средства программирования,
MD> которому .NET Framework недоступен непосредственно.

Best regards.
Михаил Дроздов, ИВС Софт, Пермь, Россия

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
My Page: http://vfpdev.narod.ru/
ICS Page: http://www.ics.perm.ru/ [on Russian]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Hаилучшие пожелания

0 nouveau message