亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mapconv.cpp

?? 一套DDR OL 游戲源碼.也就是所謂的SMO.內置SQL 及其完善的源碼 可以用作2次開發等
?? CPP
字號:
//	mapconv - symbolic debugging info generator for VirtualDub

#include <vector>
#include <algorithm>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define MAX_CNAMBUF		(0x20000)
#define MAX_FNAMBUF		(0x400000)
#define MAX_SEGMENTS	(64)
#define MAX_GROUPS		(64)

struct RVAEnt {
	long rva;
	char *line;
};

std::vector<RVAEnt> rvabuf;

char fnambuf[MAX_FNAMBUF];
char *fnamptr = fnambuf;

long segbuf[MAX_SEGMENTS][2];
int segcnt=0;
int seggrp[MAX_SEGMENTS];
long grpstart[MAX_GROUPS];

char line[8192];
long codeseg_flags = 0;
FILE *f, *fo;

char *strtack(char *s, const char *t, const char *s_max) {
	while(s < s_max && (*s = *t))
		++s, ++t;

	if (s == s_max)
		return NULL;

	return s+1;
}

bool readline() {
	if (!fgets(line, sizeof line, f))
		return false;

	int l = strlen(line);

	if (l>0 && line[l-1]=='\n')
		line[l-1]=0;

	return true;
}

bool findline(const char *searchstr) {
	while(readline()) {
		if (strstr(line, searchstr))
			return true;
	}

	return false;
}

///////////////////////////////////////////////////////////////////////////

/* dbghelp UnDecorateSymbolName() doesn't handle anonymous namespaces,
 * which look like "?A0x30dd143a".  Remove "@?A0x????????"; we don't
 * want to see "<anonymous namespace>::" in crash dump output, anyway. */
void RemoveAnonymousNamespaces( char *p )
{
	while( p = strstr( p, "@?A" ) )
	{
		int skip = 0, i;
		if( strlen(p) < 13 )
			break;

		for( i = 5; i < 13; ++i )
			if( !isxdigit(p[i]) )
				skip = 1;
		if( p[3] != '0' || p[4] != 'x' )
			skip = 1;
		if( skip )
		{
			++p;
			continue;
		}

		memmove( p, p+13, strlen(p+13)+1 );
	}

}

void parsename(long rva, char *func_name) {
	RemoveAnonymousNamespaces( func_name );
	 
	fnamptr = strtack(fnamptr, func_name, fnambuf+MAX_FNAMBUF);
	if(!fnamptr)
		throw "Too many func names; increase MAX_FNAMBUF.";
}

struct RVASorter {
	bool operator()(const RVAEnt& e1, const RVAEnt& e2) {
		return e1.rva < e2.rva;
	}
};

int main(int argc, char **argv) {
	int ver=0;
	int i;
	long load_addr;

	if (argc<3) {
		printf("mapconv <listing-file> <output-name>\n");
		return 0;
	}

	if (f=fopen("version.bin", "rb")) {
		fread(&ver,4,1,f);
		fclose(f);
	} else {
		printf("can't read version file\n");
		return 20;
	}

	if (!(f=fopen(argv[1], "r"))) {
		printf("can't open listing file \"%s\"\n", argv[1]);
		return 20;
	}

	if (!(fo=fopen(argv[2], "wb"))) {
		printf("can't open output file \"%s\"\n", argv[2]);
		return 20;
	}

	// Begin parsing file

	try {
		line[0] = 0;

//		printf("Looking for segment list.\n");

		if (!findline("Start         Length"))
			throw "can't find segment list";

//		printf("Reading in segment list.\n");

		while(readline()) {
			long grp, start, len;

			if (3!=sscanf(line, "%lx:%lx %lx", &grp, &start, &len))
				break;

			if (strstr(line+49, "CODE")) {
//				printf("%04x:%08lx %08lx type code\n", grp, start, len);

				codeseg_flags |= 1<<grp;

				segbuf[segcnt][0] = start;
				segbuf[segcnt][1] = len;
				seggrp[segcnt] = grp;
				++segcnt;
			}
		}

//		printf("Looking for public symbol list.\n");

		if (!findline("Publics by Value"))
			throw "Can't find public symbol list.";

		readline();

//		printf("Found public symbol list.\n");

		while(readline()) {
			long grp, start, rva;
			char symname[2048];
			int i;

			if (4!=sscanf(line, "%lx:%lx %s %lx", &grp, &start, symname, &rva))
				break;

			if (!(codeseg_flags & (1<<grp)))
				continue;

			RVAEnt entry = { rva, strdup(line) };

			rvabuf.push_back(entry);

//			parsename(rva,symname);
		}

//		printf("Looking for static symbol list.\n");

		if (!findline("Static symbols"))
		{
			//EDIT: 12/2/2004 Charles Lohr (Public Domain Change)
			//printf("WARNING: No static symbols found!\n");
		}
		else {
			readline();

			while(readline()) {
				long grp, start, rva;
				char symname[4096];

				if (4!=sscanf(line, "%lx:%lx %s %lx", &grp, &start, symname, &rva))
					break;

				if (!(codeseg_flags & (1<<grp)))
					continue;

				RVAEnt entry = { rva, strdup(line) };

				rvabuf.push_back(entry);

	//			parsename(rva,symname);
			}
		}

//		printf("Sorting RVA entries...\n");

		std::sort(rvabuf.begin(), rvabuf.end(), RVASorter());

//		printf("Processing RVA entries...\n");

		for(i=0; i<rvabuf.size(); i++) {
			long grp, start, rva;
			char symname[4096];

			sscanf(rvabuf[i].line, "%lx:%lx %s %lx", &grp, &start, symname, &rva);

			grpstart[grp] = rva - start;

			parsename(rva, symname);
		}
		
//		printf("Processing segment entries...\n");

		for(i=0; i<segcnt; i++) {
			segbuf[i][0] += grpstart[seggrp[i]];
//			printf("\t#%-2d  %08lx-%08lx\n", i+1, segbuf[i][0], segbuf[i][0]+segbuf[i][1]-1);
		}
/*
		printf("Raw statistics:\n");
		printf("\tRVA bytes:        %ld\n", rvabuf.size()*4);
		printf("\tFunc name bytes:  %ld\n", fnamptr - fnambuf);

		printf("\nPacking RVA data..."); fflush(stdout);
*/
		std::vector<RVAEnt>::iterator itRVA = rvabuf.begin(), itRVAEnd = rvabuf.end();
		std::vector<char> rvaout;
		long firstrva = (*itRVA++).rva;
		long lastrva = firstrva;

		for(; itRVA != itRVAEnd; ++itRVA) {
			long rvadiff = (*itRVA).rva - lastrva;

			lastrva += rvadiff;

			if (rvadiff & 0xF0000000) rvaout.push_back((char)(0x80 | ((rvadiff>>28) & 0x7F)));
			if (rvadiff & 0xFFE00000) rvaout.push_back((char)(0x80 | ((rvadiff>>21) & 0x7F)));
			if (rvadiff & 0xFFFFC000) rvaout.push_back((char)(0x80 | ((rvadiff>>14) & 0x7F)));
			if (rvadiff & 0xFFFFFF80) rvaout.push_back((char)(0x80 | ((rvadiff>> 7) & 0x7F)));
			rvaout.push_back((char)(rvadiff & 0x7F));
		}

//		printf("%ld bytes\n", rvaout.size());

		// dump data

		static const char header[64]="StepMania symbolic debug information\r\n\x1A";

		fwrite(header, 64, 1, fo);

		long t;

		t = ver;
		fwrite(&t, 4, 1, fo);

		t = rvaout.size() + 4;
		fwrite(&t, 4, 1, fo);

		t = fnamptr - fnambuf;
		fwrite(&t, 4, 1, fo);

		t = segcnt;
		fwrite(&t, 4, 1, fo);

		fwrite(&firstrva, 4, 1, fo);
		fwrite(&rvaout[0], rvaout.size(), 1, fo);
		fwrite(fnambuf, fnamptr - fnambuf, 1, fo);
		fwrite(segbuf, segcnt*8, 1, fo);

		// really all done

		if (fclose(fo))
			throw "output file close failed";
		
	} catch(const char *s) {
		fprintf(stderr, "%s: %s\n", argv[1], s);
	}

	fclose(f);

	return 0;
}

/*
 * (c) 2002 Avery Lee
 * All rights reserved.
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, and/or sell copies of the Software, and to permit persons to
 * whom the Software is furnished to do so, provided that the above
 * copyright notice(s) and this permission notice appear in all copies of
 * the Software and that both the above copyright notice(s) and this
 * permission notice appear in supporting documentation.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美激情视频在线观看一区二区三区 | 精品国产一区二区三区久久影院| 久久精品亚洲乱码伦伦中文| 亚洲一区二区三区四区五区中文| 极品销魂美女一区二区三区| 欧美伊人久久大香线蕉综合69| 久久综合久久鬼色中文字| 一区二区在线看| 风间由美一区二区三区在线观看 | 一区二区三区日韩精品| 精品在线视频一区| 欧美精品久久天天躁| 综合久久综合久久| 成人一级视频在线观看| 欧美不卡视频一区| 日本一区中文字幕| 欧美日韩国产美| 亚洲综合在线观看视频| 99精品视频中文字幕| 亚洲国产精品传媒在线观看| 免费成人美女在线观看| 欧美日韩二区三区| 亚洲一区二区三区四区在线免费观看| 成人精品小蝌蚪| 中国av一区二区三区| 国产成人精品在线看| 久久综合久久久久88| 国产麻豆9l精品三级站| 26uuu国产电影一区二区| 另类的小说在线视频另类成人小视频在线| 欧美午夜精品一区二区蜜桃| 亚洲精品久久嫩草网站秘色| 99久久久精品| 亚洲精品日韩一| 色婷婷精品大视频在线蜜桃视频 | 麻豆成人av在线| 宅男噜噜噜66一区二区66| 日韩高清一区在线| 精品美女在线播放| 国产精品一卡二卡在线观看| 国产午夜精品一区二区| 成人app软件下载大全免费| 中文字幕在线不卡国产视频| 成人av先锋影音| 亚洲精品国产精华液| 欧美在线短视频| 蜜臀av亚洲一区中文字幕| 精品久久五月天| 国产999精品久久久久久绿帽| 国产精品系列在线| 一本色道久久综合精品竹菊| 亚洲成av人片观看| 精品黑人一区二区三区久久| 成人性视频网站| 亚洲一区二区影院| 日韩欧美激情一区| 国产凹凸在线观看一区二区| 亚洲色图视频网| 欧美一区日韩一区| 风间由美一区二区av101| 一区二区免费看| 欧美成人aa大片| 日本精品视频一区二区| 免费在线观看日韩欧美| 中文字幕不卡在线| 欧美日韩国产首页| 高清国产午夜精品久久久久久| 亚洲欧美一区二区三区极速播放 | 国产精品理伦片| 欧美日韩黄色一区二区| 国产精品一卡二卡在线观看| 亚洲最新视频在线播放| 精品国产3级a| 欧美日韩亚洲综合| 国产福利91精品| 琪琪久久久久日韩精品| 国产精品久久久久久一区二区三区| 在线观看三级视频欧美| 美女爽到高潮91| 亚洲成人你懂的| 中文字幕中文字幕在线一区| 欧美一区二区三区人| 一本色道a无线码一区v| 国产麻豆精品一区二区| 日韩专区欧美专区| 一区二区三区波多野结衣在线观看 | 色综合色狠狠天天综合色| 国产在线视频一区二区| 午夜视频一区在线观看| 亚洲欧美日韩电影| 国产精品欧美久久久久无广告| 欧美一区日本一区韩国一区| 欧美色精品天天在线观看视频| 岛国精品在线播放| 国产乱子轮精品视频| 日韩高清欧美激情| 亚洲国产一二三| 一区二区三区不卡视频| 亚洲日本成人在线观看| 欧美国产日韩亚洲一区| 久久久久久久久岛国免费| 日韩三区在线观看| 91麻豆精品国产91久久久久久| 欧洲亚洲精品在线| 欧美优质美女网站| 91国产福利在线| 一本久久a久久免费精品不卡| 99久久婷婷国产精品综合| 国产精品99久久久久久宅男| 加勒比av一区二区| 国产一区亚洲一区| 国产精品一区二区三区99| 久久国产成人午夜av影院| 美女一区二区视频| 极品少妇xxxx精品少妇| 狠狠色狠狠色综合| 国产乱子伦视频一区二区三区| 国产美女在线精品| 国产精品亚洲第一| 波多野结衣中文字幕一区二区三区| 粉嫩av一区二区三区在线播放 | 国产乱码精品一区二区三区忘忧草 | 日韩av电影免费观看高清完整版 | 五月综合激情婷婷六月色窝| 日韩精品成人一区二区三区 | 成人午夜电影小说| 99久久久精品| 欧美日韩国产另类一区| 欧美一区二区三区精品| 亚洲精品在线网站| 国产婷婷色一区二区三区四区 | 99精品热视频| 欧美性受xxxx黑人xyx性爽| 在线视频中文字幕一区二区| 欧美日韩午夜在线| 精品国产乱码久久久久久浪潮| 久久久综合视频| 亚洲同性gay激情无套| 亚洲第一激情av| 久久99国产精品麻豆| 成人精品免费看| 在线视频你懂得一区| 日韩欧美一二三四区| 国产清纯白嫩初高生在线观看91| 亚洲人成人一区二区在线观看| 香蕉影视欧美成人| 国产一区二区日韩精品| 色综合天天天天做夜夜夜夜做| 日韩一区二区免费高清| 日本一区二区动态图| 亚洲成av人片在线观看无码| 国产一区二区不卡在线 | 午夜精品福利一区二区三区蜜桃| 久久99精品久久久久婷婷| 成人国产精品免费观看| 欧美久久久久免费| 欧美韩日一区二区三区四区| 亚洲一区二区三区精品在线| 国产精品亚洲一区二区三区在线| 97精品超碰一区二区三区| 精品久久久久久久久久久久久久久久久 | 国产成人亚洲综合色影视| 欧美午夜精品免费| 国产精品少妇自拍| 日本人妖一区二区| 色偷偷88欧美精品久久久| 久久这里只有精品视频网| 午夜婷婷国产麻豆精品| www.色综合.com| 久久综合成人精品亚洲另类欧美| 亚洲成av人在线观看| 97国产一区二区| 中文字幕不卡在线播放| 久久99最新地址| 7777精品久久久大香线蕉| 亚洲精品第1页| av激情亚洲男人天堂| 久久婷婷色综合| 美女在线观看视频一区二区| 欧美日韩国产一级二级| 亚洲人快播电影网| 99在线精品视频| 国产日韩欧美精品在线| 韩国精品一区二区| 欧美一级片免费看| 香港成人在线视频| 在线区一区二视频| 亚洲素人一区二区| heyzo一本久久综合| 国产日韩欧美精品电影三级在线| 蜜桃久久av一区| 欧美一级高清片| 日韩vs国产vs欧美| 这里只有精品电影| 美日韩一区二区| 久久精品一区二区三区四区| 精品一区二区三区免费观看| 欧美一区二区日韩一区二区| 免费日本视频一区| 精品三级在线看|