HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 25.06.2019, 00:50
sdfaw
Постоянный
Регистрация: 27.08.2018
Сообщений: 717
С нами: 4060346

Репутация: 43


По умолчанию

Цитата:
Сообщение от social enemy  

молодец. скрин сам скинешь?
зачем?
 
Ответить с цитированием

  #2  
Старый 25.06.2019, 01:03
sdfaw
Постоянный
Регистрация: 27.08.2018
Сообщений: 717
С нами: 4060346

Репутация: 43


По умолчанию

что именно там кидать тебе?

Цитата:
Сообщение от social enemy  

молодец. скрин сам скинешь?
 
Ответить с цитированием

  #3  
Старый 25.06.2019, 22:41
liefasm
Новичок
Регистрация: 23.06.2019
Сообщений: 6
С нами: 3627563

Репутация: 1
По умолчанию

Вопрос скорей всего не по SAMP'у.

На днях мне было необходимо создать графическое приложение. Можно использовать C++ вместе с MFC, либо переехать на QT Creator, либо.. Либо использовать C# вместе с C++. Я бы хотел спросить про третий случай.

Кто нибудь уже пробовал создавать графику в C# и вызывать из C# функции (какие-нибудь системные вычисления) из своей библиотеки C++? Что можно сказать про производительность?

Просто я не сильно доверяю QT Creator из-за незнания самого продукта.
 
Ответить с цитированием

  #4  
Старый 28.06.2019, 08:31
Roger571
Познающий
Регистрация: 22.07.2015
Сообщений: 58
С нами: 5689694

Репутация: 68
По умолчанию

Цитата:
Сообщение от liefasm  

Вопрос скорей всего не по SAMP'у.

На днях мне было необходимо создать графическое приложение. Можно использовать C++ вместе с MFC, либо переехать на QT Creator, либо.. Либо использовать C# вместе с C++. Я бы хотел спросить про третий случай.

Кто нибудь уже пробовал создавать графику в C# и вызывать из C# функции (какие-нибудь системные вычисления) из своей библиотеки C++? Что можно сказать про производительность?

Просто я не сильно доверяю QT Creator из-за незнания самого продукта.
Сам никогда совмещение не практиковал, но есть вариант на крестах написать библиотеку и вызывать ее функции уже из шарпа.

В процессе поиска выяснилось, что это не так и сложно, как мне показалось изначально.

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

SO1

SO2
 
Ответить с цитированием

  #5  
Старый 28.06.2019, 15:04
liefasm
Новичок
Регистрация: 23.06.2019
Сообщений: 6
С нами: 3627563

Репутация: 1
По умолчанию

Цитата:
Сообщение от Roger571  

Сам никогда совмещение не практиковал, но есть вариант на крестах написать библиотеку и вызывать ее функции уже из шарпа.
В процессе поиска выяснилось, что это не так и сложно, как мне показалось изначально.
Но т.к. сам я никогда такое не практиковал, то мои советы скорее всего будут с нулевой пользой и я буду выступать твоим личным гуглом.
SO1
SO2
Хотелось бы встретить человека который бы сравнил производительность программы, которая была написана только на C# и программы которая бы комбинировала два языка.
 
Ответить с цитированием

  #6  
Старый 27.06.2019, 23:59
atizoff
Познавший АНТИЧАТ
Регистрация: 02.08.2018
Сообщений: 1,295
С нами: 4095395

Репутация: 183


По умолчанию

Не знаю, ответите ли вы, но всё же.

Имеется 2 функции, silentaim и wallhack, все производятся в цикле и в одном и том же void.

Но, вот, вх то ренедрит нормально, то есть работает всё, а вот сайлент нет, почему же так?

aim:

C++:





Код:
if
(
Cvars
::
aim
)
{
IEntityIt
*
pEntityIt
=
gEnv
->
pEntitySystem
->
GetEntityIterator
(
)
;
while
(
IEntity
*
pExp
=
pEntityIt
->
Next
(
)
)
{
IEntityClass
*
pEntClass
=
pExp
->
GetClass
(
)
;
if
(
!
pEntClass
)
continue
;
const
char
*
ClassName
=
pEntClass
->
GetName
(
)
;
const
char
*
Name
=
pExp
->
GetName
(
)
;
if
(
!
_strcmp
(
ClassName
,
"Dummy"
)
)
continue
;
IEntityRenderProxy
*
pRenderProxy
=
pExp
->
GetRenderProxy
(
)
;
if
(
!
pRenderProxy
)
continue
;
uint32 RenderFlags
=
pRenderProxy
->
GetFlags
(
)
;
if
(
RenderFlags
==
386
)
{
if
(
_strstr
(
Name
,
"laymore"
)
||
_strstr
(
Name
,
"apsule"
)
||
_strstr
(
Name
,
"smartmine"
)
||
_strstr
(
Name
,
"spidermine"
)
||
_strstr
(
Name
,
"mine"
)
||
_strstr
(
Name
,
"heavydroid_rocket"
)
)
{
AABB aabb
;
pExp
->
GetWorldBounds
(
aabb
)
;
Vec3 vBonePos
=
aabb
.
GetCenter
(
)
;
Vec3 Out
;
if
(
_strstr
(
Name
,
"laymore"
)
||
_strstr
(
Name
,
"apsule"
)
||
_strstr
(
Name
,
"smartmine"
)
||
_strstr
(
Name
,
"spidermine"
)
||
_strstr
(
Name
,
"mine"
)
||
_strstr
(
Name
,
"heavydroid_rocket"
)
)
{
gRender
->
ProjectToScreen
(
aabb
.
GetCenter
(
)
,
Out
)
;
if
(
IsAim
(
Name
,
ClassName
,
pExp
,
vBonePos
)
||
is_Visible
(
aabb
.
GetCenter
(
)
,
2.0f
)
&&
Priority
(
vBonePos
)
)
{
Aim
(
pWeaponPTR
,
Name
,
ClassName
,
m_pActor
,
m_pItem
,
aabb
.
GetCenter
(
)
)
;
}
continue
;
}
continue
;
}
}
if
(
IActor
*
pActor
=
pFramework
->
GetIActorSystem
(
)
->
GetActor
(
pExp
->
GetId
(
)
)
)
{
if
(
pActor
->
IsDead
(
)
||
pActor
==
m_pActor
||
pActor
->
IsDead
(
)
||
IsMyTeam
(
m_pActor
,
pActor
)
)
continue
;
Vec3 vBonePos
=
ZERO
;
Vec3 Out
;
gRender
->
ProjectToScreen
(
vBonePos
,
Out
)
;
if
(
IsAim
(
Name
,
ClassName
,
pExp
,
vBonePos
)
||
is_Visible
(
vBonePos
,
0.0f
)
&&
Priority
(
vBonePos
)
)
{
Aim
(
pWeaponPTR
,
Name
,
ClassName
,
m_pActor
,
m_pItem
,
vBonePos
)
;
}
}
}
}


wh:

C++:





Код:
if
(
Cvars
::
wallhack
)
{
IEntityIt
*
pEntityIt
=
gEnv
->
pEntitySystem
->
GetEntityIterator
(
)
;
while
(
IEntity
*
pExp
=
pEntityIt
->
Next
(
)
)
{
IEntityClass
*
pEntClass
=
pExp
->
GetClass
(
)
;
if
(
!
pEntClass
)
continue
;
const
char
*
ClassName
=
pEntClass
->
GetName
(
)
;
const
char
*
Name
=
pExp
->
GetName
(
)
;
if
(
!
_strcmp
(
ClassName
,
"Dummy"
)
)
continue
;
IEntityRenderProxy
*
pRenderProxy
=
pExp
->
GetRenderProxy
(
)
;
if
(
!
pRenderProxy
)
continue
;
uint32 RenderFlags
=
pRenderProxy
->
GetFlags
(
)
;
if
(
RenderFlags
==
386
)
{
if
(
_strstr
(
Name
,
"laymore"
)
||
_strstr
(
Name
,
"apsule"
)
||
_strstr
(
Name
,
"smartmine"
)
||
_strstr
(
Name
,
"spidermine"
)
||
_strstr
(
Name
,
"mine"
)
||
_strstr
(
Name
,
"heavydroid_rocket"
)
)
{
pRenderProxy
->
SetHUDSilhouettesParams
(
0xFF
,
0x00
,
0x0
)
;
}
}
if
(
IActor
*
pActor
=
pFramework
->
GetIActorSystem
(
)
->
GetActor
(
pExp
->
GetId
(
)
)
)
{
if
(
pActor
->
IsDead
(
)
||
pActor
==
m_pActor
||
pActor
->
IsDead
(
)
||
IsMyTeam
(
m_pActor
,
pActor
)
)
continue
;
pRenderProxy
->
SetHUDSilhouettesParams
(
0xFF
,
0x00
,
0x0
)
;
}
}
}
 
Ответить с цитированием

  #7  
Старый 28.06.2019, 16:16
RTD
Постоянный
Регистрация: 18.03.2017
Сообщений: 410
С нами: 4818548

Репутация: 133
По умолчанию

Хук по адресу samp.dll + 0x65C60(это FUNC_SAMP_SENDCMD) конфликтит с SF, вызывая, к примеру из Lua скрипта, функцию

sampSendChat - выбрасывается "opcode '0AF9' call caused an unhandled exception". Есть другой адрес?
 
Ответить с цитированием

  #8  
Старый 28.06.2019, 16:40
FYP
Познавший АНТИЧАТ
Регистрация: 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". Есть другой адрес?
если хук нарушает вызовы хукнутой функции, то проблема однозначно в самом хуке.
 
Ответить с цитированием

  #9  
Старый 29.06.2019, 13:05
ШPEK
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами: 4852492

Репутация: 88


По умолчанию

Как вернуть массив из функции?
 
Ответить с цитированием

  #10  
Старый 29.06.2019, 15:17
atizoff
Познавший АНТИЧАТ
Регистрация: 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
)
;
}
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.