powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / помогите с вызовом функции из DLL (среда Builder, Rad Studio)
53 сообщений из 53, показаны все 3 страниц
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450094
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на всем известном примере собрал подключение к DLL. Там есть функция "Connect( "строка подключения" )".
Как вызвать теперь эту функцию?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
// определяем тип "указатель на функцию"
	typedef void __cdecl (*dll_func)(const int A, const int B);

	dll_func pShowSum = NULL;

	String Worda = "plcommpro.dll";
	wchar_t* plcommpro = Worda.w_str();
	hDLL = LoadLibrary(plcommpro);
	if (!hDLL) {
	  ShowMessage("Невозможно загрузить plcommpro.dll");
	  return;
	}
	// пытаемся найти в таблице экспорта необходимую нам функцию
	pShowSum = (dll_func)GetProcAddress(hDLL, "Connect"); // обратите внимание на название функции (объяснение будет ниже)
	if (!pShowSum)
	{
		ShowMessage("Невозможно найти функцию ShowSum");
		return;
	}
	dll_func Connect = NULL;
//	pShowSum(3,2);
	String params = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(params);


Не проходит (естественно) int h = Connect(params);
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450095
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... добавил

Код: plaintext
1.
2.
3.
4.
5.
        typedef void __cdecl (*Connectos)(String param);
	Connectos Connect = NULL;
//	pShowSum(3,2);
	String params = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(params);
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450099
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,

Что-то странное ты делаешь.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        typedef void __cdecl (*Connectos)(String param);
	Connectos Connect = NULL;

       Connect = (dll_func)GetProcAddress(hDLL, "Connect");
	
       if (!pShowSum)
	{
		ShowMessage("Где мой Connect()?!!!");
		return;
	}

	String params = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(params);


И еще - там в параметрах точно String? Может лучше PChar?
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450103
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

Поправка:

if (!Connect)
{
.....
}
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450108
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

так у меня


Код: plaintext
1.
2.
3.
4.
5.
6.
        .....
        typedef void __cdecl (*Connectos)(String param);
	Connectos Connect = NULL;
//	pShowSum(3,2);
	const char *Parameters = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(Parameters);
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450109
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterDarkMaster,

Поправка:

if (!Connect)
{
.....
}


не видит функцию Connect, хотя в проверке есть, видится.
ругается на последнюю строку.
что не так?
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450110
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[bcc32 Error] Main.cpp(41): E2468 Value of type void is not allowed
Full parser context
Main.cpp(16): parsing: _fastcall TForm1::TForm1(TComponent *)
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450125
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
Код: plaintext
1.
2.
3.
4.
dll_func Connect = NULL;
// pShowSum(3,2);
	String params = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(params);

Не понимаю, на каком основании ты надеешься, что эта каша хоть как-то заработает.
По сути ты зануляешь объявленный указатель на функцию Connect и затем пытаешься вызвать функцию по этому адресу (null'у).
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450126
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,

А адрес на фцию Connect ты получил в переменную pShowSum
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450133
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73так у меня
Полный бред у тебя. Функция, экспортированная из DLL, не может получать класс, да ещё и по
значению.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450174
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на сейчас проблема с тем, получаю ошибку в компиляторе

Код: plaintext
1.
2.
3.
[bcc32 Error] Main.cpp(40): E2268 Call to undefined function 'Connect'
  Full parser context
    Main.cpp(16): parsing:  _fastcall TForm1::TForm1(TComponent *)



надо не говорить, что я делаю не так, что надо сделать, что бы было так
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450175
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это работает

//
Код: plaintext
1.
pShowSum(3,2);



это не работает (не компилится)

Код: plaintext
1.
int h = Connect(Parameters);
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450181
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73...

надо не говорить, что я делаю не так, что надо сделать, что бы было так
То есть, разобраться ты не желаешь, желаешь просто, чтобы за тебя сделали.

А зачем тебе помогать тогда?
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450183
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73на сейчас проблема с тем, получаю ошибку в компилятореС ошибками в компиляторе обращайтесь в QC Embarcadero)
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450195
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

поправка к чему?

до последней строки все работает. проверял.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450212
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,

ну смотри. Ты уже получил (судя по твоим словам - успешно!) адрес функции Connect:
Код: plaintext
1.
2.
3.
	dll_func pShowSum = NULL;
...
	pShowSum = (dll_func)GetProcAddress(hDLL, "Connect"); // обратите внимание на <...>


Дальше ты почему-то не используешь этот адрес, а делаешь что-то чудовищное:

Код: plaintext
1.
2.
3.
	dll_func Connect = NULL;
...
	int h = Connect(params);


Ну, напрягись же чуть-чуть.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450266
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД...
Ну, напрягись же чуть-чуть.

но при этом у него и функция объявлена как

typedef void __cdecl (*Connectos)(String param);

а вызывается как

const char *Parameters = ...
int h = Connect(Parameters);

и совершенно закономерная ошибка

Value of type void is not allowed

ему не понятно.

P.S.
Когда я в третьем классе школы в диктанте по русскому языку в одном слове сделал 7 ошибок из 13 возможных букв, учитель сразу все понял и проблем на его уроках у меня больше не было )))) С тех пор предпочитаю языки типа С, Pascal, Java etc....

Т.ч. напрягаться автору я бы не советовал. Наоборот: расслабиться, деинсталировать Builder и все прочие среды разработки и больше не мучить клавиатуру, процессор и наши мозги. А удовольствия от жизни получать более традиционными способами
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450279
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMizer73так у меня
Полный бред у тебя. Функция, экспортированная из DLL, не может получать класс, да ещё и по
значению.
Если с обоих сторон один компилятор с++/либа, то может.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450293
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

идите, умничать, нах, уважаемый. и очки с собой возьмите.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450294
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

когда никто не знает, как правильно, начинаются переборы возможностей под умным соусом.
на простой вопрос, куча потерянного времени.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450299
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При чем тут умничать

1) Вы начинаете писать на С, даже не подумав подумать, что значат слова
void и NULL

Это, где-то 1-ая или, в худшем случае, 2-а глава в любой книжке по C

2) Ваш код, это какой-то копи-паст случайных строк из разных примеров

3) совершенно не понятно, чего Вы хотите добиться. Зачем Вам динамическая загрузка библиотеки, когда можно просто implib воспользоваться. Что это за библиотека. Какие у нее параметры и какой calling conversion.

4) ошибки которые Вы допускаете, заставляют предположить, что Вы вообще в первый раз язык C видите. Если бы это был вопрос от девочки-студентки, то можно было бы списать это на цвет волос.

Но с учетом того, что на форуме Вы зарегистрированы аж уже лет 5 и Вы уверяли, что "implib уже использовали" - я не знаю, как это воспринимать на трезвую голову.

IMHO & AFAIK
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450300
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

я зарегистрирован 5 лет, во многих формах. написал кучу приложений по сопровождению производства.
много сложных вопросов по с и по sql решил тут.
я пишу, что я не понимаю вопросов dll. в данный момент мне попался SDK без заголовочных файлов, и я решаю этот вопрос, как могу, как решал. по сему задаю вопросы.
для меня это вопрос - копеечный, всего лишь вопрос решить проблему работы с библиотекой, какая есть. не решу - буду писать в другой среде.
но хотелось бы в этой.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450303
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73много сложных вопросов по с и по sql решил тутТы вызывал функцию по указателю, равному NULL, я об этом тебе написал в одном из первых ответов в теме. Не решение?
Функция описана, как "возвращающая" void, а ты присваиваешь переменной h ее "результат". Об этом тебе сказали чуть позже. Не решение?

Ты всего этого не понимаешь и в то же время "решил много вопросов по с"? Смешно.
Еще и грубишь при этом.
Писать за тебя код никто тут не будет, а после хамства и просто помогать даже.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450304
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73не решу - буду писать в другой средеДругая среда тут не поможет, как и другой язык.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450306
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,
SDK идет под c#. на питоне примеры есть.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450307
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73YuRock,
SDK идет под c#. на питоне примеры есть.Да мне-то какая разница, что там есть.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450313
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSDK идет под c#. на питоне примеры есть.
Мы запасаемся попкорном и смотрим соответствующие форумы. :)
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450329
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

тебе вообще идти мимо
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450361
Bred eFeM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73, больше экспрессии!Не проходит (естественно) int h = Connect(params);
Код: plaintext
1.
int h = 42; Connect((int)params, (int)"Ы");


\\SDK идет под c#. на питоне примеры есть.Может, в честь праздника, по-братски поделишься?
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450580
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73Leonid Kudryavtsev,

я зарегистрирован 5 лет, во многих формах. написал кучу приложений по сопровождению производства.
много сложных вопросов по с и по sql решил тут.
я пишу, что я не понимаю вопросов dll. в данный момент мне попался SDK без заголовочных файлов , и я решаю этот вопрос, как могу, как решал.

Всё, вот на этом месте тебе уже надо было остановиться, и бросить это дело.
Дальше задача не решается. Нет заголовочных файлов -- невозможно вызвать.
Так что Леонид кажется тебе давал ценные советы -- расслабься...
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450681
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть __работающие__ примеры на C#, то написать самому корректные объявление функций на С вполне можно. Если, конечно, это не ActiveX DLL

Другое дело, что хорошо бы хоть какой-то опыт программирования на C иметь.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39450705
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bred eFeMMizer73, больше экспрессии!Не проходит (естественно) int h = Connect(params);
Код: plaintext
1.
int h = 42; Connect((int)params, (int)"Ы");




Bred, подкину в топку уголька.
Код: plaintext
1.
int h = 42; Connect(params, 'ЖЫШЫ');
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39464456
Nickolasha08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вставлю пять копеек. Я так понимаю пишется программа под контроллеры дверей ZKTeco. Тогда там есть UserGuid с описанием plcommpro.dll. Если нужно могу скинуть функцию connect на делфе.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467316
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nickolasha08,
буду охрененно благодарен за помощь. mizer_73@mail.ru
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467318
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nickolasha08Вставлю пять копеек. Я так понимаю пишется программа под контроллеры дверей ZKTeco. Тогда там есть UserGuid с описанием plcommpro.dll. Если нужно могу скинуть функцию connect на делфе.

верно.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467331
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Bred eFeM]Mizer73, больше экспрессии!Не проходит (естественно) int h = Connect(params);
Код: plaintext
1.
int h = 42; Connect((int)params, (int)"Ы");




Можно получить комментарий по данному делу?
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467334
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Mizer73]Bred eFeMMizer73, больше экспрессии!пропущено...
Код: plaintext
1.
int h = 42; Connect((int)params, (int)"Ы");




Можно получить комментарий по данному делу?

имею
[bcc32 Error] Unit3.cpp(42): E2031 Cannot cast from 'UnicodeString' to 'int'
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467339
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А никого не смутило, что форум то по Delphi ? А вопросы под СИ ну как бы охренено, ничего не скажешь ведь!

На гите нашёл первые попасшейся заголовки от бедолаги инвалида, который надеялся что длл'ка будет в системной папке

https://github.com/didevgen/bachelor-diploma/blob/07c63828b04bfd9c62ff6f0afacb316aa18a0711/backend/iot/DesktopPart/DesktopPart/DeviceConnector.cs#L23
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467373
Bred eFeM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73Можно получить комментарий по данному делу?да,
зачем ты пишешь
Код: plaintext
1.
typedef void __cdecl (*dll_func)(const int A, const int B);

что у тебя процедура (функция которая не возвращает значение (void)) и в которую нужно передать два инта,
если потом ты от неё вопрошаешь разультат задвигая внутрь строку.
Код: plaintext
1.
2.
3.
	dll_func Connect = NULL;
	String params = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(params);


SDK идет под c#. на питоне примеры есть.Где?! Показал бы.


воткни так, может прокатит
Код: plaintext
1.
2.
3.
4.
        typedef void __cdecl (*Connectos)(char* param);
	Connectos Connect = (Connectos)GetProcAddress(hDLL, "Connect");
	const char Parameters[] = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(Parameters);
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467712
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[/src]
SDK идет под c#. на питоне примеры есть.

Где?! Показал бы.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
To connect a device, the system needs to transfer the device-related connection parameters.
protocol indicates the protocol used for communication. At present, RS485 and TCP can be used.
port: Communication port of the device. For example, if the RS485 protocol is used, you can set port to COM1: If the TCP is used, the default port is 4370 unless otherwise noted.
deviceid: Device ID used by the serial port.
baudrate: Baud rate used for the communication of the communication of the serial port.
ipaddress: IP address of the related device for TCP/IP communication.
timeout: Timeout time of the connection (unit: ms)If the network connection is in poor condition, you should set the parameter to a larger value. Usually, timeout=5000 (5 seconds) can meet the basic network needs. When the query result contains the error code of -2, you should set timeout to a larger value, for example, timeout=20000 (20 seconds).
passwd: Connection password of the communication. If the parameter value is null, it indicates that no password is used.
(Note: The connection parameters are case-sensitive)
[Returned value]
If the device is connected successfully, the connection handle is returned. Otherwise, the error code of 0 is returned.
[Example]
Python:
params = “protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=4000,passwd=”
self.commpro = windll.LoadLibrary("plcommpro.dll")		
constr = create_string_buffer(params)
self.hcommpro = self.commpro.Connect(constr)
c#:
params = “protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=” ;
IntPtr h = Connect(params);

...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467716
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
воткни так, может прокатит
Код: plaintext
1.
2.
3.
4.
        typedef void __cdecl (*Connectos)(char* param);
	Connectos Connect = (Connectos)GetProcAddress(hDLL, "Connect");
	const char Parameters[] = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(Parameters);

[/quot]

ругается на int h = Connect(Parameters);

[bcc32 Error] Unit3.cpp(42): E2034 Cannot convert 'char const[69]' to 'char *'
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467808
#янеробот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73,
Код: plaintext
1.
2.
3.
4.
	typedef int __cdecl (*Connectos)(char* param);
	Connectos Connect = (Connectos)GetProcAddress(hDLL, "Connect");
	char *Parameters = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(Parameters);
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467843
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73Nickolasha08Вставлю пять копеек. Я так понимаю пишется программа под контроллеры дверей ZKTeco. Тогда там есть UserGuid с описанием plcommpro.dll. Если нужно могу скинуть функцию connect на делфе.верно.Так и в чем проблема? На гугле забанен?
ZKTeco SDK
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467869
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devMizer73пропущено...
верно.Так и в чем проблема? На гугле забанен?
ZKTeco SDK

... и тишина. но уже подсказали выше
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467872
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
#янероботMizer73,
Код: plaintext
1.
2.
3.
4.
	typedef int __cdecl (*Connectos)(char* param);
	Connectos Connect = (Connectos)GetProcAddress(hDLL, "Connect");
	char *Parameters = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(Parameters);




на int h = Connect(Parameters);

[bcc32 Error] Unit3.cpp(42): E2468 Value of type void is not allowed
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467883
#янеробот2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73#янероботMizer73,
Код: plaintext
1.
2.
3.
4.
	typedef int __cdecl (*Connectos)(char* param);
	Connectos Connect = (Connectos)GetProcAddress(hDLL, "Connect");
	char *Parameters = "protocol=TCP,ipaddress=192.168.12.154,port=4370,timeout=2000,passwd=";
	int h = Connect(Parameters);




на int h = Connect(Parameters);

[bcc32 Error] Unit3.cpp(42): E2468 Value of type void is not allowed
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39467933
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хватит методом тыка пробовать! Иди учит язык, а не балду ганяй надеясь на чудо.

Или твоя больная фантазия не позволяет понять, что ничего не изучая- ничего не напишешь? Тут ум нужен!
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39468524
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикА никого не смутило, что форум то по Delphi ? А вопросы под СИ ну как бы охренено, ничего не скажешь ведь!


Вопрос вызова функции из .DLL -- вопрос не только по С.
Просто так повелось, что API/ABI операционок строится на базе языка С, на котором они и написаны, но вызывать-то их можно из разных языков. Поскольку, видимо, товарищь вызывает из Delphi, он суда к вам и ломанулся.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39469090
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
#янеробот2
Mizer73пропущено...



на int h = Connect(Parameters);

[bcc32 Error] Unit3.cpp(42): E2468 Value of type void is not allowed


ай, спасибо.
реально теперь несколько стало понятно с этим cdecl.
собрал.
поправил очевидное - пошло.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39469365
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Няшик,

надо экономить время, говорить по делу. нечего сказать, по делу - есть другие темы на форуме для офтопа.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39469848
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73Няшик,

надо экономить время, говорить по делу. нечего сказать, по делу - есть другие темы на форуме для офтопа.

Смешной ты... Сам создаёшь оффтоп, из за нежелания учить что либо. А люди часто задают вопросы что бы помогли именно разобраться с проблемой, а не что бы написали всё за них. И потом ещё много раз макнули в свои же саки, при кривой вставки кода в редактор.
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39479979
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот, пошло подключение. а отключиться не могу. хотя, казалось все просто
http://www.sql.ru/forum/1264532/vyzov-funkcii-iz-dll
...
Рейтинг: 0 / 0
помогите с вызовом функции из DLL (среда Builder, Rad Studio)
    #39480033
Bred eFeM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73, как там и сказали :
Код: plaintext
1.
2.
3.
  typedef int (__cdecl * EP)(int);
  EP ExecProc = (EP)GetProcAddress(hDLL, "Disconnect");
  int q = ExecProc( h /* h , который int h = Connect(Parameters); , только теперь int h; нужно будет  написать после 'private:' в Unit1.h   */ );
...
Рейтинг: 0 / 0
53 сообщений из 53, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / помогите с вызовом функции из DLL (среда Builder, Rad Studio)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]