 |
|

26.09.2016, 11:38
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от #WH1SKEY
Как сделать такое:
Класс->Группа->функция;
Типа
SFPlugin->Client()->SendMes();
У меня выходит только так:
Класс->Функция;
Хочу свои классы с группами написать, но не выходит.
Учи ООП. Это идет класс в классе. Да простит меня фип, если я не прав.
|
|
|

26.09.2016, 14:03
|
|
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами:
6395080
Репутация:
128
|
|
Может что-то не так понял, но:
добавил функцию
C++:
Код:
void
RedirectIOToConsole
(
)
потом в bool WINAPI DllMain после выполнения условия DLL_PROCESS_ATTACH добавил
C++:
Код:
RedirectIOToConsole
(
)
;
после чего в след. строке начал поток
C++:
Код:
_beginthread
(
DLLProject
,
NULL
,
NULL
)
;
В DLLProject сделал вывод текста разными способами:
C++:
[CODE]
cout
В консоль ничего из этого не выводится. Но там появляется строка "Initialised SoundManager, которая вообще хер пойми откуда берется.
|
|
|

26.09.2016, 14:12
|
|
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами:
6935121
Репутация:
233
|
|
@Picador похоже что игра перенаправляет вывод. это как-то можно пофиксить, но как я не знаю, не приходилось аттачить консоль к sa.
|
|
|

26.09.2016, 15:04
|
|
Новичок
Регистрация: 19.09.2016
Сообщений: 6
С нами:
5077190
Репутация:
0
|
|
Порылся, вот че накидал
C++:
Код:
class
date
{
public
:
bool
CMDS
(
)
{
// Действие
return
true
;
}
}
;
class
Cedit
{
public
:
date
*
Client
;
}
;
class
Cedit
*
Plugin
;
Вот так использую
C++:
Код:
Plugin
->
Client
->
CMDS
(
)
;
Программу крашит
|
|
|

26.09.2016, 15:34
|
|
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,262
С нами:
6935116
Репутация:
183
|
|
Сообщение от #WH1SKEY
Порылся, вот че накидал
C++:
Код:
class
date
{
public
:
bool
CMDS
(
)
{
// Действие
return
true
;
}
}
;
class
Cedit
{
public
:
date
*
Client
;
}
;
class
Cedit
*
Plugin
;
Вот так использую
C++:
Код:
Plugin
->
Client
->
CMDS
(
)
;
Программу крашит
потому что под указатель Client не выделена память, а ты обращаешься к нему
и вообще, иди не позорься, почитай нормально о C++, мы тут не собираемся тебя обучать
|
|
|

26.09.2016, 21:56
|
|
Участник форума
Регистрация: 12.01.2016
Сообщений: 205
С нами:
5438612
Репутация:
68
|
|
Можно, пожалуйста, пример, как через dll написать что-нибудь в чат?
|
|
|

27.09.2016, 00:13
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от Perojek)0
Можно, пожалуйста, пример, как через dll написать что-нибудь в чат?
Вызвать AddChatWnd, в собе есть адрес
|
|
|

27.09.2016, 00:23
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
[QUOTE="Picador"]
Может что-то не так понял, но:
добавил функцию
C++:
Код:
void
RedirectIOToConsole
(
)
потом в bool WINAPI DllMain после выполнения условия DLL_PROCESS_ATTACH добавил
C++:
Код:
RedirectIOToConsole
(
)
;
после чего в след. строке начал поток
C++:
Код:
_beginthread
(
DLLProject
,
NULL
,
NULL
)
;
В DLLProject сделал вывод текста разными способами:
C++:
[CODE]
cout
|
|
|

27.09.2016, 10:52
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
Сообщение от Perojek)0
Можно, пожалуйста, пример, как через dll написать что-нибудь в чат?
ну как то так
C++:
Код:
stChatInfo
*
g_Chat
=
0x0
;
#define SAMP_FUNC_ADDTOCHATWND 0x064010
void
addMessageToChat
(
D3DCOLOR cColor
,
char
*
szMsg
,
.
.
.
)
{
void
(
__thiscall
*
AddToChatWindowBuffer
)
(
const
void
*
_this
,
int
iType
,
char
*
szText
,
char
*
szPrefix
,
DWORD cColor
,
DWORD cPrefixColor
)
=
(
void
(
__thiscall
*
)
(
const
void
*
,
int
,
char
*
,
char
*
,
DWORD
,
DWORD
)
)
(
dwSAMPAddr
+
SAMP_FUNC_ADDTOCHATWND
)
;
va_list ap
;
char
tmp
[
512
]
;
memset
(
tmp
,
0
,
512
)
;
va_start
(
ap
,
szMsg
)
;
vsnprintf
(
tmp
,
sizeof
(
tmp
)
-
1
,
szMsg
,
ap
)
;
va_end
(
ap
)
;
return
AddToChatWindowBuffer
(
(
void
*
)
g_Chat
,
8
,
tmp
,
NULL
,
cColor
,
0x00
)
;
}
|
|
|

27.09.2016, 12:21
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от iAmerican
char tmp[512];
144 максимум.
Сообщение от iAmerican
memset(tmp, 0, 512);
в c++11 можно так:
char tmp[512] = { 0 };
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|