Ошибка: ByRef несоответствие типов параметра

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AntonGV
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 24.05.2006 (Ср) 12:10
Откуда: г. Пермь

Ошибка: ByRef несоответствие типов параметра

Сообщение AntonGV » 03.08.2006 (Чт) 20:34

Что означает ошибка: ByRef несоответствие типов параметра
И почему она исчезает если изменю имя переменной?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 03.08.2006 (Чт) 20:42

1. - то и означает. Ты передал в функцию аргумент не того типа.
2. Вроде добавления к имени знаков %, $ или &?

Но больше всего меня интересует - чем ты руководствовался при выборе раздела для этого вопроса?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

AntonGV
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 24.05.2006 (Ср) 12:10
Откуда: г. Пермь

Сообщение AntonGV » 03.08.2006 (Чт) 20:48

Упс не посмотрел в каком разделе нахожусь :?

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

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 03.08.2006 (Чт) 20:50

Код в студию.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

AntonGV
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 24.05.2006 (Ср) 12:10
Откуда: г. Пермь

Сообщение AntonGV » 03.08.2006 (Чт) 21:12

Код показывать небуду он страшно секретный

Ошибка исчезла когда я в своих функциях поствил перед параметром ByVal, кстати что это означает?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.08.2006 (Чт) 21:17

Изображение

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 03.08.2006 (Чт) 23:01

AntonGV писал(а):Код показывать небуду он страшно секретный

Ошибка исчезла когда я в своих функциях поствил перед параметром ByVal, кстати что это означает?

Интересно, что такого умного ты смог написать, чего не смогут написать другие учасники форума, учитывая то, что ты не знаешь даже такой мелочи как передача параметров в метод :roll:

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 03.08.2006 (Чт) 23:31

Видимо хитрый алгоритм расчёта серийников ко всем его программам. Код не архи-сложный, но "страшно секретный"
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 04.08.2006 (Пт) 0:20

Например
For i = 0 To 10
S(i) = Chr(34+i)
Next i
:)
ОГРОМНОЕ СОРРИ!!!!
#define ROFL 0xDDDD

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.08.2006 (Пт) 7:18

Ramzes, твой пост -- откровенное оскорбление автора. Между тем, он ничего злонамеренного не высказывал.
Не надо так.
Изображение

AntonGV
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 24.05.2006 (Ср) 12:10
Откуда: г. Пермь

Сообщение AntonGV » 07.08.2006 (Пн) 14:04

В коде содержится алгоритм шифрования файла.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.08.2006 (Пн) 21:13

Фтему о разнице ByVal / ByRef (remark: link on this page hasn't been visited)

Код: Выделить всё


Dim asdasd As Integer
asdasd = 65
MsgBox "Мы только что установили значение asdasd = " + cstr(asdasd)
MsgBox "А теперь вызываем функцию ABCD и пердаём ей asdasd (ByVal)"

ABCD asdasd

MsgBox "ABCD успешно выполнилась, после её выполнения значение переменной asdasd стало = " + CSTR(asdasd)

MsgBox "А теперь вызовем процедуру XYZ, точно такую же как ABCD но вместо ByVal будет ByRef"

XYZ asdasd

MsgBox "После вызову XYZ значение asdasd стало = " + Cstr(asdasd)
'-------

Sub ABCD(ByVal Num As Integer)
MsgBox "Я процедура <ABCD>. Вы передали Num = " + CStr(num)
num = 777
End Sub

Sub XYZ(ByRef Num As Integer)
MsgBox "Я процедура <XYZ> Вы передали Num = " + CStr(num)
num = 888
End Sub
Последний раз редактировалось Хакер 07.08.2006 (Пн) 21:59, всего редактировалось 1 раз.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 07.08.2006 (Пн) 21:58

...и при этом в XYZ все равно стоит ByVal.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.08.2006 (Пн) 21:59

BV

Действительно... исправил... теперь вроде бы всё...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 89

    TopList