Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > перенос с С на Delphi


Автор: map 16.8.2005, 20:02
Привет!
вот проблемка появилась, необходимо переложить процедуру с++ в Delphi,


Код
void WINAPI SetPinValues(map<int, double>* pins)
{
    map <int, double>::iterator pins_it;

    Log->fstr.Format("SetPinValues(size=%i)", pins->size()); Log-
>print(0);

    for(pins_it=pins->begin(); pins_it!=pins->end(); pins_it++)
    {
        allpins[pins_it->first] = pins_it->second;
        Log->fstr.Format("Pin[%i]=%f", pins_it->first, pins_it->second); 
Log->print(0);
    }
}


Но не знаю как подойти к map<int, double>* pins, может кто занимался такими переводами?
Эта процедура будет применяться в Dll.

Автор: Pakshin A. S. 16.8.2005, 20:07
smile : А что именно эта штука делает?

Автор: Mayk 16.8.2005, 21:01
map<int, double> противопостовляет уникальному integer числу некое double число(дробное, 64 бита).
Например уникальному идентификационному номеру булавки(который генерируется от балды) сопостовляется её вес в граммах. Так для того чтобы установить вес в 5.04 грамма булавки #112233 надо сделать (*pins)[112233]=5.04; Соответсвенно получить вес булавки можно через (*pins)[112233].

Однако в дельфях, насколько мне известно(я здесь вообще не местный, просто мимо пробегал, дай думаю гляну) нет библиотеки STL,в которой реализован этот map. Таким образом задача является неразришимой. Следует использовать другой подход.
Самый очевидный - передать указатели на ф-цию по установке веса, чтения веса(ну или что вы там с булавками делаете).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)