![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Перевести код с Delphi на С |
|
|
Delphi - Перевести код с Delphi на С
|
![]() Старожил Сообщения: 222 |
|
|
Отправлено: 17:06, 26-08-2012 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось ferget, 26-08-2012 в 20:05. Отправлено: 19:11, 26-08-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать пробовал так, но это приводит к зависанию программы.Пишу dll осталось передать имя
если запускать так, то плагин работает но нет имени И рабочий пример на Delphi. может вы увидите где у меня ошибка. что не так на С, почему не передаёт имя |
Отправлено: 21:06, 26-08-2012 | #3 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Тут надо заранее выделять память под Name
int main() { char* RetName=new char[255]; On_Send_Dll_ID_Name(RetName); //тут используется RetName delete[] RetName; return 0; } |
Отправлено: 21:43, 26-08-2012 | #4 |
![]() Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать ferget, если выделить - получаем массу ошибок или я что не так делаю
Если не затруднит , можете глянуть мой проект.Мне нужно вывести имя, в таком виде как у меня он сейчас- он работает но нету имени, запросы доходят |
|
Отправлено: 22:28, 26-08-2012 | #5 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Builer'а нету, поэтому сделал тестовую Dll в VS
DLL: файл main.cpp #include <string.h> #include "main.h" const char* PLUGIN_NAME="biss"; // a sample exported function extern "C" __declspec(dllexport) void __stdcall On_Send_Dll_ID_Name(char* Name) { strcpy(Name,PLUGIN_NAME); } BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: // attach to process // return FALSE to fail DLL load break; case DLL_PROCESS_DETACH: // detach from process break; case DLL_THREAD_ATTACH: // attach to thread break; case DLL_THREAD_DETACH: // detach from thread break; } return TRUE; // succesful } #ifndef __MAIN_H__ #define __MAIN_H__ #include <windows.h> /* To use this exported function of dll, include this header * in your project. */ #ifdef BUILD_DLL #define DLL_EXPORT __declspec(dllexport) #else #define DLL_EXPORT __declspec(dllimport) #endif #ifdef __cplusplus extern "C" { #endif __declspec(dllexport) void __stdcall On_Send_Dll_ID_Name(char* Name); #ifdef __cplusplus } #endif #endif // __MAIN_H__ файл testDll.cpp выводит в консоль biss |
Отправлено: 23:24, 26-08-2012 | #6 |
![]() Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать ferget, всё ровно что то не то, сразу навешивается программа (DVB DREAM), а вот с Delphi примером всё хорошо.
|
------- Отправлено: 23:40, 26-08-2012 | #7 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать тогда можно попробовать так
extern "C" __declspec(dllexport) const char* __stdcall On_Send_Dll_ID_Name() { return "biss"; } |
Отправлено: 00:05, 27-08-2012 | #8 |
![]() Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось ddv122, 27-08-2012 в 00:22. Отправлено: 00:13, 27-08-2012 | #9 |
![]() Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать Вот что получается, но если положить плагин biss то мой безымянный подхватит его имя
Вот ещё что нашел typedef VOID (*On_Send_Dll_ID_Name)(char *Name ); ● Name is a pointer to a character array with fixed size of 128 bytes You MUST copy your plugin name to this location. The given string names the plugin and also will be used to append the plugin pull-down menu inside WTV. |
Отправлено: 00:18, 27-08-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] перевести exe в iso | junior_step | Microsoft Windows NT/2000/2003 | 7 | 17-03-2011 18:29 | |
Помогите перевести... | Disconnect | Выбор отдельных компонентов компьютера и конфигурации в целом | 4 | 17-10-2009 17:57 | |
перевести txt на html | cirgiq1980 | Хочу все знать | 1 | 26-12-2008 09:10 | |
Прочие БД - Как перевести SQL в MD5 | VM007 | Программирование и базы данных | 4 | 24-10-2008 11:13 | |
Как перевести с Английского | APOSTOL | Программирование и базы данных | 5 | 21-01-2004 16:46 |
|