格式转换问题! 有没有人可以告诉我一下!谢谢!有这方面的源代码给我一份!不胜感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下面是我的一个窃听功能木马的一个类,对你应该有用#include "stdafx.h"#include <windows.h>#include <mmsystem.h>#include <dsound.h>#include <mmreg.h>#include <msacm.h>class ACM {public: HACMSTREAM has; ACMSTREAMHEADER ahc; struct MPEG_WFX{ WAVEFORMATEX wfx; char data [12]; } AcmSrcWfx,AcmDstWfx; ACM(){}; ~ACM(){}; BOOL InitAcmStream (void) { SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST); if ( acmStreamOpen (&has, NULL, &AcmSrcWfx.wfx, &AcmDstWfx.wfx, 0, 0, 0, 0) != 0 ){ AfxMessageBox("acmStreamOpen False !"); acmStreamClose (has, 0); has = NULL; return FALSE; } if ( has == NULL ) AfxMessageBox("acmStreamOpen [LPHACMSTREAM] False !"); return FALSE; }; void CloseAcmStream (void) { if ( has != NULL ) acmStreamClose (has, 0); has = NULL; }; };class ACM_EN : public ACM{public: void Init(DWORD Freq,DWORD Band = 0 ){ memset(&AcmSrcWfx, 0, sizeof(AcmSrcWfx)); AcmSrcWfx.wfx.wFormatTag = WAVE_FORMAT_PCM; AcmSrcWfx.wfx.nChannels = 1; AcmSrcWfx.wfx.nSamplesPerSec = Freq; AcmSrcWfx.wfx.nAvgBytesPerSec = Freq * __UAIIA_BITS__ / 8; AcmSrcWfx.wfx.nBlockAlign = __UAIIA_BITS__ / 8; AcmSrcWfx.wfx.wBitsPerSample = __UAIIA_BITS__; AcmSrcWfx.wfx.cbSize = 0; memset(&AcmDstWfx, 0, sizeof(AcmDstWfx)); AcmDstWfx.wfx.wFormatTag = 85; AcmDstWfx.wfx.nChannels = 1; AcmDstWfx.wfx.nSamplesPerSec = Freq; AcmDstWfx.wfx.nAvgBytesPerSec = (Band==0) ? 1000 : ((Band==1) ? 2000 : 2500); AcmDstWfx.wfx.nBlockAlign = 1; AcmDstWfx.wfx.wBitsPerSample = 0; AcmDstWfx.wfx.cbSize = 12; AcmDstWfx.data[0] = 1; AcmDstWfx.data[2] = 2; AcmDstWfx.data[10] = 0x71; AcmDstWfx.data[11] = 5; switch ( Band ){ case 0: AcmDstWfx.data[6] = 0x34; AcmDstWfx.data[8] = 1; break; case 1: AcmDstWfx.data[6] = 0x68; AcmDstWfx.data[8] = 1; break; case 2: AcmDstWfx.data[6] = 4; AcmDstWfx.data[7] = 1; AcmDstWfx.data[8] = 2; break; } InitAcmStream(); }; ACM_EN(){ has = NULL; }; ~ACM_EN(){ CloseAcmStream(); }; BOOL Compress(BYTE *SrcBuff,DWORD AcmSrcSize,BYTE *DstBuff,DWORD &AcmDstSize) { BOOL r; memset (&ahc, 0, sizeof (ACMSTREAMHEADER)); ahc.cbStruct = sizeof (ACMSTREAMHEADER); ahc.pbSrc = SrcBuff; ahc.cbSrcLength = AcmSrcSize; ahc.pbDst = DstBuff; ahc.cbDstLength = AcmDstSize; if ( acmStreamPrepareHeader (has, &ahc, 0) != 0 ) return FALSE; if ( ! acmStreamConvert (has, &ahc, ACM_STREAMCONVERTF_START|ACM_STREAMCONVERTF_BLOCKALIGN)) r = TRUE; else r = FALSE; ahc.cbSrcLength = AcmSrcSize; ahc.cbDstLength = AcmDstSize; acmStreamUnprepareHeader (has, &ahc, 0); AcmDstSize = ahc.cbDstLengthUsed; return r; };};class ACM_DE : public ACM{public: void Init(DWORD Freq,DWORD Band = 0 ){ memset(&AcmSrcWfx, 0, sizeof(AcmSrcWfx)); AcmSrcWfx.wfx.wFormatTag = 85; AcmSrcWfx.wfx.nChannels = 1; AcmSrcWfx.wfx.nSamplesPerSec = Freq; AcmSrcWfx.wfx.nAvgBytesPerSec = (Band==0) ? 1000 : ((Band==1) ? 2000 : 2500); AcmSrcWfx.wfx.nBlockAlign = 1; AcmSrcWfx.wfx.wBitsPerSample = 0; AcmSrcWfx.wfx.cbSize = 12; AcmSrcWfx.data[0] = 1; AcmSrcWfx.data[2] = 2; AcmSrcWfx.data[10] = 0x71; AcmSrcWfx.data[11] = 5; switch ( Band ){ case 0: AcmSrcWfx.data[6] = 0x34; AcmSrcWfx.data[8] = 1; break; case 1: AcmSrcWfx.data[6] = 0x68; AcmSrcWfx.data[8] = 1; break; case 2: AcmSrcWfx.data[6] = 4; AcmSrcWfx.data[7] = 1; AcmSrcWfx.data[8] = 2; break; } memset(&AcmDstWfx, 0, sizeof(AcmDstWfx)); AcmDstWfx.wfx.wFormatTag = WAVE_FORMAT_PCM; AcmDstWfx.wfx.nChannels = 1; AcmDstWfx.wfx.nSamplesPerSec = Freq; AcmDstWfx.wfx.nAvgBytesPerSec = Freq * __UAIIA_BITS__ / 8; AcmDstWfx.wfx.nBlockAlign = __UAIIA_BITS__ / 8; AcmDstWfx.wfx.wBitsPerSample = __UAIIA_BITS__; AcmDstWfx.wfx.cbSize = 0; InitAcmStream(); }; ACM_DE(){ has = NULL; }; ~ACM_DE(){ CloseAcmStream(); }; BOOL DeCompress(BYTE *SrcBuff,DWORD AcmSrcSize,BYTE *DstBuff,DWORD &AcmDstSize) { BOOL r; memset (&ahc, 0, sizeof (ACMSTREAMHEADER)); ahc.cbStruct = sizeof (ACMSTREAMHEADER); ahc.pbSrc = SrcBuff; ahc.cbSrcLength = AcmSrcSize; ahc.pbDst = DstBuff; ahc.cbDstLength = AcmDstSize; if ( acmStreamPrepareHeader (has, &ahc, 0) != 0 ) return FALSE; if ( !acmStreamConvert(has, &ahc, ACM_STREAMCONVERTF_BLOCKALIGN) ) r = TRUE; else r = FALSE; ahc.cbSrcLength = AcmSrcSize; ahc.cbDstLength = AcmDstSize; acmStreamUnprepareHeader (has, &ahc, 0); AcmDstSize = ahc.cbDstLengthUsed; return r; };}; wince下窗口移动问题 没有拨号的情况下,如何知道指定连接的状态。 网络图片获取 在线等待__我想问写MFC语法的问题 请教一个问题! 一棵极其简单的二叉树,如何快速搜索其叶子结点,找到符合条件的一个叶子? SDK高手近来看看吧! 我做了一个在Document/View中使用dialog作为向导的程序,但有个讨厌的问题。。。。。。 vc++家教 用什么样的加密方法可以保证被加密后的字符是可显示的字符? 关于同com通讯的问题,在线等待。 单选框问题:对话框内有两组单选框......
#include <windows.h>
#include <mmsystem.h>
#include <dsound.h>
#include <mmreg.h>
#include <msacm.h>class ACM
{
public:
HACMSTREAM has;
ACMSTREAMHEADER ahc;
struct MPEG_WFX{
WAVEFORMATEX wfx;
char data [12];
} AcmSrcWfx,AcmDstWfx;
ACM(){};
~ACM(){};
BOOL InitAcmStream (void)
{
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST); if ( acmStreamOpen (&has, NULL, &AcmSrcWfx.wfx, &AcmDstWfx.wfx, 0, 0, 0, 0) != 0 ){
AfxMessageBox("acmStreamOpen False !");
acmStreamClose (has, 0);
has = NULL;
return FALSE;
}
if ( has == NULL )
AfxMessageBox("acmStreamOpen [LPHACMSTREAM] False !");
return FALSE;
};
void CloseAcmStream (void)
{
if ( has != NULL )
acmStreamClose (has, 0);
has = NULL;
};
};
class ACM_EN : public ACM
{
public:
void Init(DWORD Freq,DWORD Band = 0 ){
memset(&AcmSrcWfx, 0, sizeof(AcmSrcWfx));
AcmSrcWfx.wfx.wFormatTag = WAVE_FORMAT_PCM;
AcmSrcWfx.wfx.nChannels = 1;
AcmSrcWfx.wfx.nSamplesPerSec = Freq;
AcmSrcWfx.wfx.nAvgBytesPerSec = Freq * __UAIIA_BITS__ / 8;
AcmSrcWfx.wfx.nBlockAlign = __UAIIA_BITS__ / 8;
AcmSrcWfx.wfx.wBitsPerSample = __UAIIA_BITS__;
AcmSrcWfx.wfx.cbSize = 0; memset(&AcmDstWfx, 0, sizeof(AcmDstWfx));
AcmDstWfx.wfx.wFormatTag = 85;
AcmDstWfx.wfx.nChannels = 1;
AcmDstWfx.wfx.nSamplesPerSec = Freq;
AcmDstWfx.wfx.nAvgBytesPerSec = (Band==0) ? 1000 : ((Band==1) ? 2000 : 2500);
AcmDstWfx.wfx.nBlockAlign = 1;
AcmDstWfx.wfx.wBitsPerSample = 0;
AcmDstWfx.wfx.cbSize = 12;
AcmDstWfx.data[0] = 1;
AcmDstWfx.data[2] = 2;
AcmDstWfx.data[10] = 0x71;
AcmDstWfx.data[11] = 5;
switch ( Band ){
case 0:
AcmDstWfx.data[6] = 0x34;
AcmDstWfx.data[8] = 1;
break;
case 1:
AcmDstWfx.data[6] = 0x68;
AcmDstWfx.data[8] = 1;
break;
case 2:
AcmDstWfx.data[6] = 4;
AcmDstWfx.data[7] = 1;
AcmDstWfx.data[8] = 2;
break;
}
InitAcmStream();
};
ACM_EN(){ has = NULL; };
~ACM_EN(){ CloseAcmStream(); };
BOOL Compress(BYTE *SrcBuff,DWORD AcmSrcSize,BYTE *DstBuff,DWORD &AcmDstSize)
{
BOOL r;
memset (&ahc, 0, sizeof (ACMSTREAMHEADER));
ahc.cbStruct = sizeof (ACMSTREAMHEADER);
ahc.pbSrc = SrcBuff;
ahc.cbSrcLength = AcmSrcSize;
ahc.pbDst = DstBuff;
ahc.cbDstLength = AcmDstSize;
if ( acmStreamPrepareHeader (has, &ahc, 0) != 0 )
return FALSE;
if ( ! acmStreamConvert (has, &ahc, ACM_STREAMCONVERTF_START|ACM_STREAMCONVERTF_BLOCKALIGN))
r = TRUE;
else
r = FALSE;
ahc.cbSrcLength = AcmSrcSize;
ahc.cbDstLength = AcmDstSize;
acmStreamUnprepareHeader (has, &ahc, 0);
AcmDstSize = ahc.cbDstLengthUsed;
return r;
};
};
class ACM_DE : public ACM
{
public:
void Init(DWORD Freq,DWORD Band = 0 ){
memset(&AcmSrcWfx, 0, sizeof(AcmSrcWfx));
AcmSrcWfx.wfx.wFormatTag = 85;
AcmSrcWfx.wfx.nChannels = 1;
AcmSrcWfx.wfx.nSamplesPerSec = Freq;
AcmSrcWfx.wfx.nAvgBytesPerSec = (Band==0) ? 1000 : ((Band==1) ? 2000 : 2500);
AcmSrcWfx.wfx.nBlockAlign = 1;
AcmSrcWfx.wfx.wBitsPerSample = 0;
AcmSrcWfx.wfx.cbSize = 12; AcmSrcWfx.data[0] = 1;
AcmSrcWfx.data[2] = 2;
AcmSrcWfx.data[10] = 0x71;
AcmSrcWfx.data[11] = 5;
switch ( Band ){
case 0:
AcmSrcWfx.data[6] = 0x34;
AcmSrcWfx.data[8] = 1;
break;
case 1:
AcmSrcWfx.data[6] = 0x68;
AcmSrcWfx.data[8] = 1;
break;
case 2:
AcmSrcWfx.data[6] = 4;
AcmSrcWfx.data[7] = 1;
AcmSrcWfx.data[8] = 2;
break;
}
memset(&AcmDstWfx, 0, sizeof(AcmDstWfx));
AcmDstWfx.wfx.wFormatTag = WAVE_FORMAT_PCM;
AcmDstWfx.wfx.nChannels = 1;
AcmDstWfx.wfx.nSamplesPerSec = Freq;
AcmDstWfx.wfx.nAvgBytesPerSec = Freq * __UAIIA_BITS__ / 8;
AcmDstWfx.wfx.nBlockAlign = __UAIIA_BITS__ / 8;
AcmDstWfx.wfx.wBitsPerSample = __UAIIA_BITS__;
AcmDstWfx.wfx.cbSize = 0; InitAcmStream();
};
ACM_DE(){ has = NULL; };
~ACM_DE(){ CloseAcmStream(); };
BOOL DeCompress(BYTE *SrcBuff,DWORD AcmSrcSize,BYTE *DstBuff,DWORD &AcmDstSize)
{
BOOL r;
memset (&ahc, 0, sizeof (ACMSTREAMHEADER));
ahc.cbStruct = sizeof (ACMSTREAMHEADER);
ahc.pbSrc = SrcBuff;
ahc.cbSrcLength = AcmSrcSize;
ahc.pbDst = DstBuff;
ahc.cbDstLength = AcmDstSize;
if ( acmStreamPrepareHeader (has, &ahc, 0) != 0 )
return FALSE;
if ( !acmStreamConvert(has, &ahc, ACM_STREAMCONVERTF_BLOCKALIGN) )
r = TRUE;
else
r = FALSE;
ahc.cbSrcLength = AcmSrcSize;
ahc.cbDstLength = AcmDstSize;
acmStreamUnprepareHeader (has, &ahc, 0);
AcmDstSize = ahc.cbDstLengthUsed;
return r;
};
};