О какой-такой тряске говорилось здесь (viewtopic.php?p=6734562#p6734562)? И где там был ByVal, что-то не видно его...
Какой из нижеприведенных способов передачи параметров будет наиболее эффективным с точки зрения быстродействия, кто знает?
1.
- Код: Выделить всё
addr = MyFunction(Var)
Function MyFunction(Arg1 as Long) as Long
'значение изменяемо
End If
2.
- Код: Выделить всё
addr = MyFunction(Var)
Function MyFunction(ByVal Arg1 as Long) as Long
End If
3.
- Код: Выделить всё
addr = MyFunction(ByVal Var)
Function MyFunction(ByVal Arg1 as Long) as Long
End If
С вызовами API - аналогичный вопрос (когда нужно передать значение, а не указатель):
4.
- Код: Выделить всё
Declare Function FuncName Lib "LibName" (ByVal Parameter As Long)
Dim Arg as long
Ret = FuncName(Arg)
5.
- Код: Выделить всё
Declare Function FuncName Lib "LibName" (ByVal Parameter As Long)
Dim Arg as long
Ret = FuncName(ByVal Arg)
6.
- Код: Выделить всё
Declare Function FuncName Lib "LibName" (Parameter As Long)
Dim Arg as long
Ret = FuncName(ByVal Arg)
7.
- Код: Выделить всё
Declare Function FuncName Lib "LibName" (Parameter As Any)
Dim Arg as long
Ret = FuncName(ByVal Arg)
(Any - полезен, чтобы не объявлять лишние API при передаче различных типов параметров)