Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

05.03.2010, 13:38
|
|
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме: 289669
Репутация:
7
|
|
\\ChaOs//, дело было не в памяти, а в том, что не написал std:: перед ifstream.
Ребят, новая проблема:
Код:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL,"Hello, Win32 world!","Hello from Message Box",MB_OK);
return 0;
}
Ошибка:
error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [20]' to 'LPCWSTR' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
|
|
|

05.03.2010, 13:51
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
Сообщение от DiHWO
\\ChaOs//, дело было не в памяти, а в том, что не написал std:: перед ifstream.
Ребят, новая проблема:
Код:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL,"Hello, Win32 world!","Hello from Message Box",MB_OK);
return 0;
}
Ошибка:
error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [20]' to 'LPCWSTR' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Код:
#include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
MessageBox(NULL, L"Hello, Win32 world!", L"Hello from Message Box", MB_OK);
return 0;
}
з.ы. неужели так сложно зайти в гугл?
Последний раз редактировалось rudvil; 05.03.2010 в 13:53..
|
|
|

05.03.2010, 14:14
|
|
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме: 289669
Репутация:
7
|
|
если есть ачат, зачем юзать гугл ))) сэнк за помощь
|
|
|

06.03.2010, 20:26
|
|
Познающий
Регистрация: 22.11.2009
Сообщений: 53
Провел на форуме: 33126
Репутация:
0
|
|
Как скопировать содержимое текстового файла в нетипизированный
|
|
|

06.03.2010, 20:33
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
как и любой другой. чрез файл стрим в с# и вообще .net. не знаю на каком языке ты прогаешь.
|
|
|

06.03.2010, 21:05
|
|
Познающий
Регистрация: 22.11.2009
Сообщений: 53
Провел на форуме: 33126
Репутация:
0
|
|
На с++.Можешь пример привести?А то я в работе с файлами вообще ни бум бум 
|
|
|

06.03.2010, 21:12
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
пример для тхт и бинарника
http://www.cplusplus.com/doc/tutorial/files/
|
|
|

07.03.2010, 22:56
|
|
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме: 3020589
Репутация:
240
|
|
Здравствуйте.
Такая проблема:
Вот пример клиента и сервера на чистом си с tcp
Сервер:
Код:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(void)
{
#define sHELLO "123"
struct sockaddr_in stSockAddr;
int i32SocketFD = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if(-1 == i32SocketFD)
{
perror("Ne mogy sozdat socket");
exit(EXIT_FAILURE);
}
memset(&stSockAddr, 0, sizeof(stSockAddr));
stSockAddr.sin_family = PF_INET;
stSockAddr.sin_port = htons(1111);
stSockAddr.sin_addr.s_addr = INADDR_ANY;
if(-1 == bind(i32SocketFD,(const void *)&stSockAddr, sizeof(stSockAddr)))
{
perror("Oshibka svazivaniya");
close(i32SocketFD);
exit(EXIT_FAILURE);
}
if(-1 == listen(i32SocketFD, 10))
{
perror("Oshibka proslushivaniya");
close(i32SocketFD);
exit(EXIT_FAILURE);
}
for(;;)
{
int i32ConnectFD = accept(i32SocketFD, NULL, NULL);
if(0 > i32ConnectFD)
{
perror("Oshibka prinatya");
close(i32ConnectFD);
close(i32SocketFD);
exit(EXIT_FAILURE);
}
// отправляем клиенту приветствие
send(i32SocketFD, sHELLO, sizeof(sHELLO), 0);
close(i32ConnectFD);
}
return 0;
}
Клиент
Код:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(void)
{
char sHELLO[20];
struct sockaddr_in stSockAddr;
int i32Res;
int i32SocketFD = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if(-1 == i32SocketFD)
{
perror("Oshibka ne mogy sozdat soket");
exit(EXIT_FAILURE);
}
memset(&stSockAddr, 0, sizeof(stSockAddr));
stSockAddr.sin_family = PF_INET;
stSockAddr.sin_port = htons(1111);
i32Res = inet_pton(PF_INET, "127.0.0.1", &stSockAddr.sin_addr);
if(0 > i32Res)
{
perror("Pervii parametr ne otnositsa k kotegorii nor adresov");
close(i32SocketFD);
exit(EXIT_FAILURE);
}
else if(0 == i32Res)
{
perror("char string (Ne sodergit norm 2 ip");
close(i32SocketFD);
exit(EXIT_FAILURE);
}
if(connect(i32SocketFD, (const void *)&stSockAddr, sizeof(stSockAddr))==-1)
{
perror("oshibka soedineniya");
close(i32SocketFD);
exit(EXIT_FAILURE);
}
close(i32SocketFD);
printf("\n%s\n",sHELLO);
printf("\n");
return 0;
}
Проблемы две:
1)через переменную sHELLO отправляется строка "123" клиенту, но после отправки клиенту приходят вместо 123 - кракозябры.
2)При повторной попытке запустить пишет: Address already in use
В чем могут быть проблемы?
Если кому не сложно и есть время приведите пример самого простого клиент серверного приложения на чистом си с udp
Листинг из вики по udp не полон сервер
Листинги из статьи Криса Касперски не компилятся(компилить пробовал под виндой на dev c++ ибо нету и не будет визуал студии)
|
|
|

07.03.2010, 23:32
|
|
Постоянный
Регистрация: 26.07.2009
Сообщений: 321
Провел на форуме: 444589
Репутация:
123
|
|
возможно ли узнать какой трек и группа проигрывается в аимп в данный момент?
если да, то как?
|
|
|

08.03.2010, 00:02
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме: 4137635
Репутация:
2407
|
|
возможно ли узнать какой трек и группа проигрывается в аимп в данный момент?
если да, то как?
Да, вот простой пример родного плагина для AIMP на ассемблере (masm32):
aimp_plugin.asm:
Код:
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\masm32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\macros\macros.asm
include \masm32\macros\windows.asm
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
AIMP_CallBack_Set=12+4 ;(dwCBType: DWORD; Proc: Pointer; User: DWORD): Boolean; stdcall;
AIMP_CallBack_Remove=12+8 ;(dwCBType: DWORD; Proc: Pointer): Boolean; stdcall;
AIMP_Status_Get=12+12 ;(StatusType: DWORD): DWORD; stdcall;
AIMP_PLS_Info=12+32 ;(Index: Integer; out PLSInfo: TPLSInfo)
AIMP_PLS_Count=12+36 ;word
AIMP_GetCurrentTrack=12+60 ; dd ? ;(AInfo: PAIMP2FileInfo): Boolean; stdcall;
AIMP_STS_STREAM_TYPE=39
AIMP_STS_Player=4
AIMP_PLAYER_STATE=11
TAIMP2FileInfo STRUCT
cbSizeOf dd ?
nActive dd ?
nBitRate dd ?
nChannels dd ?
nDuration dd ?
nFileSize dd ?
dd ?
nRating dd ?
nSampleRate dd ?
nTrackID dd ?
nAlbumLen dd ?
nArtistLen dd ?
nDateLen dd ?
nFileNameLen dd ?
nGenreLen dd ?
nTitleLen dd ?
sAlbum dd ?
sArtist dd ?
sDate dd ?
sFileName dd ?
sGenre dd ?
sTitle dd ?
TAIMP2FileInfo ENDS
TPLSInfo STRUCT
PLSName dd ?
FileCount dd ?
PLSDuration dd ?
PLSSize dq ?
PlaylistID dd ?
TPLSInfo ENDS
GetSongName PROTO :DWORD,:DWORD,:DWORD,:DWORD
init2 proto :dword
config proto :dword, :dword
PlayFile proto :dword, :dword
TAIMPAddonHeader STRUCT
Version dd ?
DllInstance dd ?
GetPlgName dd ?
GetAuthor dd ?
Init dd ?
Config dd ?
Free dd ?
TAIMPAddonHeader ENDS
.data
plugin2 TAIMPAddonHeader {0,0,offset get_plugin_name,offset get_author,offset init2,offset config,offset quit}
plugin_name db "Test",0
plugin_author db "(c) dx",0
.data?
hInstance dd ?
FileInfo TAIMP2FileInfo {}
AIMP dd ?
PlayList TPLSInfo <>
.code
LibMain proc instance:DWORD,reason:DWORD,reserved:DWORD
.if reason == DLL_PROCESS_ATTACH
invoke GetModuleHandle,NULL
mov hInstance,eax
mov eax,1
.endif
ret
LibMain ENDP
AIMP_QueryAddon PROC
mov eax,offset plugin2
ret
AIMP_QueryAddon ENDP
get_plugin_name PROC
mov eax,offset plugin_name
ret
get_plugin_name ENDP
get_author PROC
mov eax,offset plugin_author
ret
get_author ENDP
config PROC Handle :DWORD, Win: DWORD
xor eax,eax
ret
config ENDP
init2 PROC, xAIMP :DWORD
m2m AIMP,xAIMP
push 0
push offset PlayFile
push AIMP_PLAYER_STATE
mov eax,AIMP
push eax
mov eax,[eax]
call dword ptr [eax+AIMP_CallBack_Set]
xor eax,eax
ret
init2 ENDP
PlayFile PROC User :DWORD, cType :DWORD
LOCAL stitle [512] :BYTE
LOCAL sartist [512] :BYTE
.if cType!=AIMP_PLAYER_STATE
jmp ext
.endif
push AIMP_STS_Player
mov eax,AIMP
push eax
mov eax,[eax]
call dword ptr [eax+AIMP_Status_Get]
cmp eax,1
jne ext
push AIMP_STS_STREAM_TYPE
mov eax,AIMP
push eax
mov eax,[eax]
call dword ptr [eax+AIMP_Status_Get]
test eax,eax
jne ext
invoke RtlZeroMemory,addr sartist,512
invoke RtlZeroMemory,addr stitle,512
invoke RtlZeroMemory,offset FileInfo,88
mov FileInfo.cbSizeOf,88
lea eax,stitle
mov FileInfo.sTitle,eax
mov FileInfo.nTitleLen,126
lea eax,sartist
mov FileInfo.sArtist,eax
mov FileInfo.nArtistLen,512
push offset FileInfo
mov eax,AIMP
push eax
mov eax,[eax]
call dword ptr [eax+AIMP_GetCurrentTrack]
invoke MessageBoxW,0,addr stitle,addr sartist,0
ext:
xor eax,eax
ret
PlayFile ENDP
quit PROC
xor eax,eax
ret
quit ENDP
end LibMain
aimp_plugin.def:
Код:
LIBRARY aimp_plugin
EXPORTS AIMP_QueryAddon
А вообще, в aimp sdk есть простые примеры на дельфи.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|