Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
ACiD
-
- Бывалый

-

-
- Сообщения: 261
- Зарегистрирован: 10.12.2005 (Сб) 2:29
- Откуда: г. Санкт - Петербург
-
ACiD » 19.01.2007 (Пт) 14:25
Доброго дня.
У меня небольшая проблемма с добавлением
модуля Delphi:
- Код: Выделить всё
library project2;
uses
SysUtils,
Classes;
{$R *.res}
function xk(x:integer):integer;
begin
result:=sqr(x)
end;
exports xk;
begin
end.
Объявляю:
- Код: Выделить всё
Private Declare Function xk Lib "d:\PROJECT2.DLL" _
(x As Integer) As Integer
А вот редультат:
- Код: Выделить всё
error 49: Bad DLL calling convention
-
CodeName33
-
- Бывалый

-

-
- Сообщения: 297
- Зарегистрирован: 01.09.2004 (Ср) 13:25
- Откуда: SPb
-
CodeName33 » 19.01.2007 (Пт) 14:46
calling convension должен быть SDTCALL, а у тебя небось CDECL. покопайся в настройках DELPHI - там гдето в настройке проекта это по умолчанию выставляется.
Программисты не глючат - глючат компиляторы...
-
Amed
-
- Алфизик

-
-
- Сообщения: 5346
- Зарегистрирован: 09.03.2003 (Вс) 9:26
-
Amed » 19.01.2007 (Пт) 14:49
Попробуй так
- Код: Выделить всё
Private Declare Function xk Lib "d:\PROJECT2.DLL" (x As Long) As Long
В дельфях
Generic integer types:
Integer -2147483648..2147483647 signed 32-bit
-
ACiD
-
- Бывалый

-

-
- Сообщения: 261
- Зарегистрирован: 10.12.2005 (Сб) 2:29
- Откуда: г. Санкт - Петербург
-
ACiD » 19.01.2007 (Пт) 15:01
CodeName33, найти не могу
Amed, тоже самое
-
tyomitch
-
- Пользователь #1352

-

-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 19.01.2007 (Пт) 15:30
Во-первых, ByVal As Long.
Во-вторых, в делфе: function xk(x:integer):integer; stdcall;
(По дефолту там register, а не cdecl. CodeName33 всё врёт.)
-
ACiD
-
- Бывалый

-

-
- Сообщения: 261
- Зарегистрирован: 10.12.2005 (Сб) 2:29
- Откуда: г. Санкт - Петербург
-
ACiD » 19.01.2007 (Пт) 15:49
tyomitch, ОГРОМНОЕ СПАСИБО!!!
А почему ставить лонг надо, ведь в дельфях
тип integer?
-
ACiD
-
- Бывалый

-

-
- Сообщения: 261
- Зарегистрирован: 10.12.2005 (Сб) 2:29
- Откуда: г. Санкт - Петербург
-
ACiD » 19.01.2007 (Пт) 16:32
Amed писал(а):Разное именование.
Тепарь ясно, спасибо.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 9