Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 851
от 17.09.2007, 23:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 494, Экспертов: 66
В номере:Вопросов: 2, Ответов: 3


Вопрос № 101758: Здравствуйте! Подскажите плз как сделать следующее: есть программа на Microsoft Visual C++ 7.0. Она создает html-файл. Вопрос как из прогргаммы запустить IExplorer с этой созданной страничкой? Заранее спасибо....
Вопрос № 101775: Приветствую! Не могу состыковать объявления функций на Delphi и С++ Проблема в следующем: Есть объявление функции на Delphi: function Func(var a : integer; var mas: array of TRec; var _Note : PChar) : Boolean; Где TRec = ...

Вопрос № 101.758
Здравствуйте!

Подскажите плз как сделать следующее:
есть программа на Microsoft Visual C++ 7.0. Она создает
html-файл. Вопрос как из прогргаммы запустить IExplorer с этой созданной страничкой?
Заранее спасибо.
Отправлен: 12.09.2007, 11:14
Вопрос задал: Muratov Radik (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Maxim V.G.
Здравствуйте, Muratov Radik!
В качестве альтернативніх вариантов предложу ещё 2 функции для запуска IExplorer:
1)
CreateProcess(NULL, "C:\Program files\Internet Explorer\IEXPLORE.EXE www.ya.ru", NULL,NULL,FALSE,CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS,NULL,NULL,&cif,&pi)

2)
WinExec("C:\Program files\Internet Explorer\IEXPLORE.EXE www.mail.ru", SW_MAXIMIZE)

Для открытия Вашей страницы нужно в качестве параметра передать путь к вашей странице: "C:\Program files\Internet Explorer\IEXPLORE.EXE c:\www\MyHTMLPage.html"
---------
Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 4-ый класс)
Ответ отправлен: 12.09.2007, 13:14
Оценка за ответ: 5


Вопрос № 101.775
Приветствую!
Не могу состыковать объявления функций на Delphi и С++
Проблема в следующем:
Есть объявление функции на Delphi:
function Func(var a : integer; var mas: array of TRec;
var _Note : PChar) : Boolean;
Где
TRec = packed record
a: Double;
b: Double;
c: Boolean;
End

Как эту функцию объявить в С++. В общем проблема возникла только с передаваемым массивом
Я в С++ объявил
struct TRec{
double a;
double b;
bool c;
}
А саму функцию
extern "C" __dllspec(dllexport) bool
Func(int &a, TRec **mas, char * &_Note);
Были так же варианты TRec * mas и TRec * &mas
Но ни один из параметров не срабатывает - более того при попытке обратиться к элементам переданного или созданного по указанному адресу массива вводит программу в полный ступор - просто зависает.
Оказалось, что длина стека, отведенного на mas - 8 байт(тупо поставил __int64 mas), но тогда непонятно как с такой вещью работать.
Поясните пожалуйста, как в Delphi передаются массивы в параметры для изменения.
Отправлен: 12.09.2007, 13:10
Вопрос задал: Tek (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Igor_
Здравствуйте, Tek!

Если есть возможность, скомпилируйте pas файл в C++Builder и посмотрите, как он вам выдаст объявление этой функции в hpp файле.

Для примера у меня в C++Builder подключаются pas файлы
То, что в pas файле описано как
procedure Execute(DS:Array of TDataSet);virtual;
В hpp (считай h-файл) получается как:
virtual void __fastcall Execute(const Db::TDataSet* const * DS, const int DS_Size);
Ответ отправил: Igor_ (статус: 3-ий класс)
Ответ отправлен: 12.09.2007, 15:24
Оценка за ответ: 5
Комментарий оценки:
Спасибо за подсказку, Builder ставить правда не пришлось, но направление дали верное

Отвечает: Ross
Здравствуйте, Tek!

Функция:
bool Func(int a,TRec *mas, char * _Note);

Структура:
#pragma pack(puch,1)
struct TRec
{
double a;
double b;
bool c;
};
#pragma pack(pop)

Директива #pragma pack(push,1) задает выравнивание структуры в памяти по байту (аналог packed record)
---------
Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 12.09.2007, 15:40
Оценка за ответ: 5
Комментарий оценки:
Благодарю за помощь, ваш четкий и безусловный ответ оказался полностью верным и главное отвратил меня от неправильных путей поиска решения, на которые я бесполезно потратил бы время. Мои колебания в мини-форуме - результат другой проблемы (нестыковка в моем нерасширенном сознании индексов динамических массивов) :)


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.59 от 17.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное