Подскажите пожалуйста. Сможем ли мы из программы, написанной на MapBasic, вызвать программный модуль, написанный на С++ и принять из него данные (например достаточно большой массив), используя OLE либо DDE ?? Причем без создания промежуточных файлов.
COM - практически стандарт для таких задач и VBA. На С++ -...21.05.08 03:31 Автор: void <Grebnev Valery> Статус: Elderman
> Подскажите пожалуйста. Сможем ли мы из программы, > написанной на MapBasic, вызвать программный модуль, > написанный на С++ и принять из него данные (например > достаточно большой массив), используя OLE либо DDE ?? > Причем без создания промежуточных файлов.
COM - практически стандарт для таких задач и VBA. На С++ - out-of-proc server.
> Подскажите пожалуйста. Сможем ли мы из программы, > написанной на MapBasic, вызвать программный модуль, > написанный на С++ и принять из него данные (например > достаточно большой массив), используя OLE либо DDE ?? > Причем без создания промежуточных файлов. да!
Integrate MapInfo Professional
MapBasic allows you to work in the programming languages you are most familiar with and integrates the optimal amount of mapping functionality into applications. Another advantage to the Integrated Mapping feature is even as MapInfo Professional is running in the background, it remains as a hidden server to the application - allowing the end user to see only one application interface. The Integrated Mapping feature also lets you control MapInfo Professional through popular development tools such as Visual Basic, PowerBuilder, Delphi and C++, giving you the ability to:
Control MapInfo Professional through OLE Automation
Add mapping to your Visual Basic application with as little as five lines of code
Create MapInfo windows inside other custom programs. For instance, you can create a MapInfo Professional window inside your Visual Basic form. Integrated Mapping allows you to 'reparent' MapInfo Professional windows so they look and act like part of your Visual Basic (or other language) interface. If you've been wanting to add 'a little bit of mapping' to your custom applications, this is the tool for the job
Program in development environments of your choice. If you're a C++ programmer, you can do all of your coding in C++
You can use Dynamic Data Exchange (DDE) to communicate with other software packages. Plus, MapBasic applications can call routines in Windows Dynamic Link Libraries (DLL) files.
Не знаю что за зверь такой MapBasic, но есть соображения...13.05.08 09:15 Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 13.05.08 09:26 Количество правок: 2
> Подскажите пожалуйста. Сможем ли мы из программы, > написанной на MapBasic, вызвать программный модуль, > написанный на С++ и принять из него данные (например > достаточно большой массив), используя OLE либо DDE ?? > Причем без создания промежуточных файлов. Чем не нравятся файлы? Это один из древнейших механизмов IPC. Есть в виндах ещё один механизм IPC — т.н. Named Pipes. Т.е. программа создаёт эту самую именованную трубу, и "слушает" её. Твой басик открывает файл как обычно, только имя указывает вида \\.\pipe\DesiredPipeName, т.е. именно ту трубу, что создало С++ приложение. И пишет в него некий запрос. С++ приложение, прочитав запрос, пишет в эту трубу данные. Басик эти данные из открытого "файла", который труба на самом деле, читает. Вот так дёшево и сердито можно организовать обмен данными без лишних заморочек и без ужасного «промежуточного файла» ;-)