#include "stdafx.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CWinApp theApp; int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { int nRetCode = 0; if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { nRetCode = 1; } else { CString name; if (argc > 1) name = argv[0]; if (name.IsEmpty() || GetFileAttributes(name) == 0xffffffff) { OPENFILENAME ofn; char szFile[260]; ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile; ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "Resource Files\0*.rc\0"; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) name = ofn.lpstrFile; } CStringList sl; CString s; CStdioFile f2; bool skip = false; if (f2.Open(name, CFile::modeRead | CFile::shareDenyWrite)) { while (f2.ReadString(s)) { if (s.Find("APSTUDIO_INVOKED") != -1) skip = true; if (skip && s.Find("#endif") != -1) skip = false; if (skip == true) continue; if (s.Left(4) == "FONT") continue; if (s.Left(8) == "#include") continue; if (s.Find('"') != -1) { int f1 = s.Find('"')+1; CString item = s.Mid(f1, s.Find('"', f1) - f1); if (!(s.Find("BS_") != -1 && item == "Button") && item != "") if (sl.Find(item) == NULL) sl.AddTail(item); } } f2.Close(); f2.Open(name + ".txt", CFile::modeWrite | CFile::modeCreate | CFile::shareDenyWrite); POSITION pos; if( ( pos = sl.GetHeadPosition() ) != NULL ) { do { CString item = sl.GetNext(pos).GetBuffer(0); //cout << item.Left(70).GetBuffer(0) << endl; f2.WriteString(item + '\n'); } while (pos); } f2.Close(); } } return nRetCode; }