IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Помогите перевести код Си на Delphi, dll в С++ и в Delphi
Samurai
сообщение 26.02.2006 13:50
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Здравствуйте!
Появилась проблемка перевода кода программы с си на delphi, а именно программа создания dll.
Для удобства разобью непонятные мне вопросы на пункты:
Мне интересно что означает и как это перевести на Delphi, желательно сразу привести аналог

1)

#pragma argsused
int WINAPI DllMain(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}


2)

void* CALLING_CONV (*MemAlloc)(int size) = NULL;


__declspec(dllexport) int CALLING_CONV Initialize (void*, void* (CALLING_CONV *_MemAlloc)(int));
__declspec(dllexport) int CALLING_CONV ConnectToDB ();
__declspec(dllexport) int CALLING_CONV DisconnectFromDB ();
__declspec(dllexport) int CALLING_CONV GetAllVertices (LPVERTEX *lpVerts, ID_T id_parent);
__declspec(dllexport) int CALLING_CONV GetVertexParam (LPPARAM *lpParams, VERTEX vertex, TIMETYPE time_first, TIMETYPE time_last);
__declspec(dllexport) int CALLING_CONV GetSrcVertEdges (LPSRCVERTEDGE *lpsve, VERTEX vertex);
__declspec(dllexport) int CALLING_CONV GetDstVertEdgest (LPDSTVERTEDGE *lpdve, VERTEX vertex);
__declspec(dllexport) LPGRAPH CALLING_CONV GetAllGraphes (ID_T id_obj, int* graph_cnt);
__declspec(dllexport) ID_T CALLING_CONV SaveGraph (GRAPH graph);
__declspec(dllexport) ID_T CALLING_CONV SaveNode (ID_T id_graph, ID_T id_obj, char* node_name, RECT rc);
__declspec(dllexport) ID_T CALLING_CONV SaveLink (ID_T id_graph, ID_T id_obj, ID_T id_node1, ID_T id_node2, char* link_name);
__declspec(dllexport) int CALLING_CONV SaveAggregation (ID_T id_aggrnode, ID_T id_childnode);
__declspec(dllexport) int CALLING_CONV UpdateDB (int bCommit);
__declspec(dllexport) int CALLING_CONV DeleteGraph (ID_T id_graph);
__declspec(dllexport) LPGENODE CALLING_CONV LoadAllNodes (ID_T id_graph, int* node_cnt);
__declspec(dllexport) LPGELINK CALLING_CONV LoadAllLinks (ID_T id_graph, int* link_cnt);
__declspec(dllexport) ID_T CALLING_CONV SaveLG5Net (ID_T id_graph, char* lg5net_name, int lg5_level);
__declspec(dllexport) int CALLING_CONV SaveLG5NetItem (ID_T id_lg5net, ID_T id_node, int item_group);
__declspec(dllexport) LPLG5NET CALLING_CONV LoadLG5Net (ID_T id_graph, int* lg5net_cnt);
__declspec(dllexport) LPLG5NETITEM CALLING_CONV LoadLG5NetItem (ID_T id_lg5net, int* lg5netitem_cnt);




3)
Код

#define TRY_QUEREY_OPEN \
try\
{\
qry->Open();\
}\
catch (EOracleError& err)\
{\
MessageBox (GetActiveWindow(),\
AnsiString("Ошибка при работе с базой данных\n'" + err.Message + "'\n\nОбратитесь к администратору базы данных").c_str(),\
"Ошибка", MB_OK | MB_ICONERROR);\
return NULL;\
}

#define TRY_QUEREY_EXECUTE \
try\
{\
qry->Execute();\
}\
catch (EOracleError& err)\
{\
MessageBox (GetActiveWindow(),\
AnsiString("Ошибка при работе с базой данных\n'" + err.Message + "'\n\nОбратитесь к администратору базы данных").c_str(),\
"Ошибка", MB_OK | MB_ICONERROR);\
return NULL;\
}



Заранеее благодарю всех кто откликнулся на мой вопрос и принял участие.

Сообщение отредактировано: volvo - 7.11.2006 19:42
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.06.2025 23:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"