 |
|

28.06.2019, 15:04
|
|
Новичок
Регистрация: 23.06.2019
Сообщений: 6
С нами:
3627563
Репутация:
1
|
|
Сообщение от Roger571
Сам никогда совмещение не практиковал, но есть вариант на крестах написать библиотеку и вызывать ее функции уже из шарпа.
В процессе поиска выяснилось, что это не так и сложно, как мне показалось изначально.
Но т.к. сам я никогда такое не практиковал, то мои советы скорее всего будут с нулевой пользой и я буду выступать твоим личным гуглом.
SO1
SO2
Хотелось бы встретить человека который бы сравнил производительность программы, которая была написана только на C# и программы которая бы комбинировала два языка.
|
|
|

28.06.2019, 16:16
|
|
Постоянный
Регистрация: 18.03.2017
Сообщений: 410
С нами:
4818548
Репутация:
133
|
|
Хук по адресу samp.dll + 0x65C60(это FUNC_SAMP_SENDCMD) конфликтит с SF, вызывая, к примеру из Lua скрипта, функцию
sampSendChat - выбрасывается "opcode '0AF9' call caused an unhandled exception". Есть другой адрес?
|
|
|

28.06.2019, 16:40
|
|
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами:
6935121
Репутация:
233
|
|
Сообщение от Artur_iOS
Хук по адресу samp.dll + 0x65C60(это FUNC_SAMP_SENDCMD) конфликтит с SF, вызывая, к примеру из Lua скрипта, функцию
sampSendChat - выбрасывается "opcode '0AF9' call caused an unhandled exception". Есть другой адрес?
если хук нарушает вызовы хукнутой функции, то проблема однозначно в самом хуке.
|
|
|

29.06.2019, 13:05
|
|
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами:
4852492
Репутация:
88
|
|
Как вернуть массив из функции?
|
|
|

29.06.2019, 14:58
|
|
Новичок
Регистрация: 18.10.2015
Сообщений: 6
С нами:
5563739
Репутация:
0
|
|
Сообщение от cakebou
C++:
Код:
char
*
Func
(
)
{
char
i
[
7
]
=
"cakebou"
;
return
i
;
}
Ты возвращаешь адрес локального массива, это даже не скомпилируется.
C++:
Код:
char
*
foo
(
)
{
char
*
bar
=
new
char
[
7
]
;
bar
=
"string"
;
return
bar
;
}
И после использования - не забыть освободить память.
|
|
|

29.06.2019, 15:17
|
|
Познавший АНТИЧАТ
Регистрация: 02.08.2018
Сообщений: 1,295
С нами:
4095395
Репутация:
183
|
|
здрасте. почему код выполняет действие, даже не смотря на то, что я нажал кнопку?
C++:
Код:
if
(
Cvars
::
teleport
&&
GetAsyncKeyState
(
Cvars
::
tp_key
)
)
{
IEntity
*
entity
=
nullptr
;
if
(
Cvars
::
tp
==
1
)
entity
->
SetPos
(
Cvars
::
TeleportPositions1
)
;
if
(
Cvars
::
tp
==
2
)
entity
->
SetPos
(
Cvars
::
TeleportPositions2
)
;
if
(
Cvars
::
tp
==
3
)
entity
->
SetPos
(
Cvars
::
TeleportPositions3
)
;
if
(
Cvars
::
tp
==
4
)
entity
->
SetPos
(
Cvars
::
TeleportPositions4
)
;
}
|
|
|

29.06.2019, 15:33
|
|
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами:
4723927
Репутация:
158
|
|
Сообщение от cakebou
C++:
Код:
char
*
Func
(
)
{
char
i
[
7
]
=
"cakebou"
;
return
i
;
}
C++:
Код:
#include
auto
get_array
(
)
{
return
std
::
array
{
'a'
,
'b'
,
'c'
}
;
}
|
|
|

29.06.2019, 15:51
|
|
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами:
4319022
Репутация:
113
|
|
Сообщение от social enemy
здрасте. почему код выполняет действие, даже не смотря на то, что я нажал кнопку?
C++:
Код:
if
(
Cvars
::
teleport
&&
GetAsyncKeyState
(
Cvars
::
tp_key
)
)
{
IEntity
*
entity
=
nullptr
;
if
(
Cvars
::
tp
==
1
)
entity
->
SetPos
(
Cvars
::
TeleportPositions1
)
;
if
(
Cvars
::
tp
==
2
)
entity
->
SetPos
(
Cvars
::
TeleportPositions2
)
;
if
(
Cvars
::
tp
==
3
)
entity
->
SetPos
(
Cvars
::
TeleportPositions3
)
;
if
(
Cvars
::
tp
==
4
)
entity
->
SetPos
(
Cvars
::
TeleportPositions4
)
;
}
Попробуй вот это, у меня в плагинах норм работает
C++:
Код:
GetKeyState
(
VK_ADD
)
&
0x8000
|
|
|

29.06.2019, 16:29
|
|
Познавший АНТИЧАТ
Регистрация: 02.08.2018
Сообщений: 1,295
С нами:
4095395
Репутация:
183
|
|
Сообщение от Stiopko
Попробуй вот это, у меня в плагинах норм работает
C++:
Код:
GetKeyState
(
VK_ADD
)
&
0x8000
Сообщение от cakebou
Попробуй с этим
C++:
Код:
BOOL
GetMessage
(
LPMSG lpMsg
,
HWND hWnd
,
UINT wMsgFilterMin
,
UINT wMsgFilterMax
)
;
не, пачаны. этот tp_key пользователь сам выбирает. вот воид выбора кнопки:
C++:
Код:
void
GUI
::
hotkey
(
int
&
key
)
noexcept
{
key
?
ImGui
::
Text
(
"[ 0x%x ]"
,
key
)
:
ImGui
::
Text
(
"[ key ]"
)
;
if
(
ImGui
::
IsItemHovered
(
)
)
{
ImGuiIO
&
io
=
ImGui
::
GetIO
(
)
;
for
(
int
i
=
0
;
i
1
?
2
:
1
)
!=
config
.
misc
.
menuKey
)
key
=
i
+
(
i
>
1
?
2
:
1
)
;
}
}
|
|
|

29.06.2019, 18:11
|
|
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами:
4319022
Репутация:
113
|
|
Сообщение от social enemy
не, пачаны. этот tp_key пользователь сам выбирает. вот воид выбора кнопки:
C++:
Код:
void
GUI
::
hotkey
(
int
&
key
)
noexcept
{
key
?
ImGui
::
Text
(
"[ 0x%x ]"
,
key
)
:
ImGui
::
Text
(
"[ key ]"
)
;
if
(
ImGui
::
IsItemHovered
(
)
)
{
ImGuiIO
&
io
=
ImGui
::
GetIO
(
)
;
for
(
int
i
=
0
;
i
1
?
2
:
1
)
!=
config
.
misc
.
menuKey
)
key
=
i
+
(
i
>
1
?
2
:
1
)
;
}
}
C++:
Код:
GetKeyState
(
Cvars
::
tp_key
)
&
0x8000
?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|