\83©ã\82¤ã\83\96ã\83©ã\83ª/sample.c on 'support' - RSS feed" href="/view?p=dtxmania/dtxmania.git;a=rss;f=DTXViewer%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/@xadec001%C3%A3%C2%83%C2%A9%C3%A3%C2%82%C2%A4%C3%A3%C2%83%C2%96%C3%A3%C2%83%C2%A9%C3%A3%C2%83%C2%AA/sample.c;h=refs/heads/support" type="application/rss+xml" /> \83©ã\82¤ã\83\96ã\83©ã\83ª/sample.c on 'support' - RSS feed (no merges)" href="/view?p=dtxmania/dtxmania.git;a=rss;f=DTXViewer%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/@xadec001%C3%A3%C2%83%C2%A9%C3%A3%C2%82%C2%A4%C3%A3%C2%83%C2%96%C3%A3%C2%83%C2%A9%C3%A3%C2%83%C2%AA/sample.c;h=refs/heads/support;opt=--no-merges" type="application/rss+xml" /> \83©ã\82¤ã\83\96ã\83©ã\83ª/sample.c on 'support' - Atom feed" href="/view?p=dtxmania/dtxmania.git;a=atom;f=DTXViewer%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/@xadec001%C3%A3%C2%83%C2%A9%C3%A3%C2%82%C2%A4%C3%A3%C2%83%C2%96%C3%A3%C2%83%C2%A9%C3%A3%C2%83%C2%AA/sample.c;h=refs/heads/support" type="application/atom+xml" /> \83©ã\82¤ã\83\96ã\83©ã\83ª/sample.c on 'support' - Atom feed (no merges)" href="/view?p=dtxmania/dtxmania.git;a=atom;f=DTXViewer%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/@xadec001%C3%A3%C2%83%C2%A9%C3%A3%C2%82%C2%A4%C3%A3%C2%83%C2%96%C3%A3%C2%83%C2%A9%C3%A3%C2%83%C2%AA/sample.c;h=refs/heads/support;opt=--no-merges" type="application/atom+xml" />

OSDN Git Service

#39698 099fで起動時に例外が出る問題を修正。
[dtxmania/dtxmania.git] / DTXViewerプロジェクト / @xadec001ã\83©ã\82¤ã\83\96ã\83©ã\83ª / sample.c
1
2 #include        <windows.h>
3 #include        <stdio.h>
4 #include        <stdlib.h>
5 #include        "xadec.h"
6
7
8 int main(int argc, char *argv[]){
9         FILE *fp;
10         UCHAR *ps, *pd;
11         XAHEADER xah;
12         HXASTREAM hxas;
13         WAVEFORMATEX wfx;
14         XASTREAMHEADER xash;
15         ULONG dlen;
16
17         fp = fopen("sample.xa", "rb");
18
19         fread(&xah, 1, sizeof(XAHEADER), fp);
20         if ( xah.id != _XAID )
21                 return(EXIT_FAILURE);
22
23         ps = (UCHAR *)malloc(xah.nDataLen);
24         fread(ps, 1, xah.nDataLen, fp);
25         fclose(fp);
26
27
28
29         hxas = xaDecodeOpen(&xah, &wfx);
30         if ( hxas == NULL )
31                 return(EXIT_FAILURE);
32
33         xaDecodeSize(hxas, xah.nDataLen, &dlen);
34
35         pd = (UCHAR *)malloc(dlen);
36
37         xash.pSrc = ps;
38         xash.nSrcLen = xah.nDataLen;
39         xash.nSrcUsed = 0;
40         xash.pDst = pd;
41         xash.nDstLen = dlen;
42         xash.nDstUsed = 0;
43         xaDecodeConvert(hxas, &xash);
44
45         xaDecodeClose(hxas);
46
47         /* 
48         \82±\82±\82Ü\82Å\8eÀ\8ds\82³\82ê\82é\82Æ\81Awfx\82É\82ÍWAVEFORMATEX\82Ì\92l\81A
49         pd\82É\82Í\93W\8aJ\82³\82ê\82½\83f\81[\83^\82ª\8ai\94[\82³\82ê\82Ü\82·\81B
50         */
51         fp = fopen("hed.bin", "wb");
52         fwrite(&wfx, 1, sizeof(WAVEFORMATEX), fp);
53         fclose(fp);
54
55         fp = fopen("out.bin", "wb");
56         fwrite(pd, 1, xash.nDstUsed, fp);
57         fclose(fp);
58
59
60         free(pd);
61         free(ps);
62         return(EXIT_SUCCESS);
63 }
64
65
66