initial commit der GDE_3
This commit is contained in:
parent
6207d87109
commit
a4a464e719
46 changed files with 5087 additions and 0 deletions
479
GDE_3_2008/Console/Console.cpp
Normal file
479
GDE_3_2008/Console/Console.cpp
Normal file
|
@ -0,0 +1,479 @@
|
|||
/* file:Console.cpp
|
||||
Creator : Girish Bharadwaj.
|
||||
Desc:This class will contain all the stuff we need from the
|
||||
Console.Following is the list I can think of 1. Create a new console and
|
||||
use it to Write and read console. This will be using AllocConsole
|
||||
(),WriteConsole() and ReadConsole (). This will be via the win32 APIs.
|
||||
|
||||
2. Use the scanf ,printf,cout ,cin and cerr ( this will be using the CRT
|
||||
functionality.) Using the WDJ technique given there by Andrew Tucker &
|
||||
using the KB "How to Spawn a Console App and Redirect Standard Handles"
|
||||
Article ID: Q126628.
|
||||
|
||||
3. Redirect the output from a console app to a windows GUI app. (
|
||||
"Redirection Issues on Windows 95 MS-DOS Apps and Batch Files" Article
|
||||
ID: Q150956).This will be the fun part. What I would like to see is to
|
||||
provide an API which takes the console process name as the argument.
|
||||
That will redirect the stuff to a CString.. which can be read by the
|
||||
creator.
|
||||
|
||||
4. I am also planning to do a somesort of poor man's debugger.i.e. You
|
||||
will have an API similar to scanf which takes the input from the user at
|
||||
run time with a default value to fall back to after sometime specified
|
||||
by u. if you want to change a particular variable and see the effect,
|
||||
You can use this.
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <io.h>
|
||||
#include <wincon.h>
|
||||
#include "console.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
#include "..\graphics\shape.h"
|
||||
#include "..\graphics\pointerarray.h"
|
||||
#include "..\gde_3.h"
|
||||
#ifndef _USE_OLD_IOSTREAMS
|
||||
using namespace std;
|
||||
#endif
|
||||
|
||||
|
||||
#pragma warning( disable : 4311 )//Warning handle to long conversion disabled
|
||||
#pragma warning( disable : 4312 )//Warning handle to long conversion disabled
|
||||
|
||||
|
||||
extern CGDE_3App theApp;
|
||||
|
||||
void printwindata();
|
||||
|
||||
BOOL CConsole::sm_bConsole = FALSE;
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
CConsole::CConsole()
|
||||
{
|
||||
//default constructor.
|
||||
m_bRedirected = FALSE; // this is the right place to set this before this
|
||||
m_sNumColumns = 0;
|
||||
m_sNumLines = 0;
|
||||
m_sMaxLines = 0;
|
||||
m_sMaxColumns = 0;
|
||||
m_wAttrib = 0;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CConsole::CConsole(BOOL bCreateConsole)
|
||||
{
|
||||
m_bRedirected = FALSE; // this is the right place to set this before this
|
||||
m_sNumColumns = 0;
|
||||
m_sNumLines = 0;
|
||||
m_sMaxLines = 0;
|
||||
m_sMaxColumns = 0;
|
||||
m_wAttrib = 0;
|
||||
if (bCreateConsole)
|
||||
CreateConsole ();
|
||||
//I dont see any reason for not having bCreateConsole false But eh
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CConsole::~CConsole()
|
||||
{
|
||||
DestroyConsole (); //We need to remove the Console
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
BOOL CConsole::CreateConsole ()
|
||||
{
|
||||
if (sm_bConsole == TRUE) // we have already created a console
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
// I am not allocating the console if there is already one.
|
||||
|
||||
if (!AllocConsole ()) //Just call the Console allocation API
|
||||
{
|
||||
sm_bConsole = FALSE;
|
||||
m_dwError = GetLastError (); //Lets get the error and store it away.
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
sm_bConsole = TRUE; //To make sure we wont allocate again
|
||||
//Lets keep all the stuff around
|
||||
m_sNumLines = (short)GetSettings (SC_LINES);
|
||||
m_sNumColumns = (short)GetSettings (SC_COLUMNS);
|
||||
m_sMaxLines = 70;//(short) GetSettings (SC_MAXLINES);
|
||||
m_sMaxColumns = (short) GetSettings (SC_MAXCOLUMNS);
|
||||
m_wAttrib = GetSettings (SC_ATTRIB);
|
||||
m_dwError = 0; // Lets keep this zero for the time being.
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
BOOL CConsole::DestroyConsole ()
|
||||
{
|
||||
if (sm_bConsole == FALSE) //There is no console to destroy
|
||||
return TRUE; //as Well return asif we deleted
|
||||
if (!FreeConsole ())
|
||||
{
|
||||
sm_bConsole = TRUE;
|
||||
m_dwError = GetLastError ();//Lets keep the error here if someone wants
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
sm_bConsole = FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
short CConsole::GetNumberOfLines()
|
||||
{
|
||||
return (short) GetSettings (SC_LINES);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
short CConsole::SetNumberOfLines (short sLines)
|
||||
{
|
||||
if(CONSOLE_DEBUG)printf("SetNumberOfLines to %d\n",sLines);
|
||||
short sRes = m_sNumLines;
|
||||
m_sNumLines = sLines;
|
||||
SetupConsole (SC_LINES);
|
||||
Sleep(100);
|
||||
return sRes;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
short CConsole::SetNumberOfColumns (short sColumns)
|
||||
{
|
||||
if(CONSOLE_DEBUG)printf("SetNumberOfColumns to %d\n",sColumns);
|
||||
short sOld = m_sNumColumns;
|
||||
m_sNumColumns = sColumns;
|
||||
SetupConsole (SC_COLUMNS);
|
||||
return sOld;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
short CConsole::GetNumberOfColumns ()
|
||||
{
|
||||
return (short)GetSettings (SC_COLUMNS);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
WORD CConsole::GetAttributes ()
|
||||
{
|
||||
return (short) GetSettings (SC_ATTRIB);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
WORD CConsole::SetAttributes (WORD wAttrib, short NumChars)
|
||||
{
|
||||
WORD wOld = m_wAttrib;
|
||||
m_wAttrib = wAttrib;
|
||||
SetupConsole (SC_ATTRIB);
|
||||
ApplyAttrib(NumChars);
|
||||
return wOld;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
short CConsole::SetMaxLinesInWindow (short maxLines)
|
||||
{
|
||||
if(CONSOLE_DEBUG)printf("SetMaxLinesInWindow to %d\n",maxLines);
|
||||
|
||||
short sOld = m_sMaxLines;
|
||||
m_sMaxLines = maxLines;
|
||||
SetupConsole (SC_MAXLINES);
|
||||
return sOld;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
short CConsole::GetMaxLinesInWindow ()
|
||||
{
|
||||
return (short) GetSettings (SC_MAXLINES);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
short CConsole::SetMaxColumnsInWindow (short maxColumns)
|
||||
{
|
||||
if(CONSOLE_DEBUG)printf("SetMaxColumnsInWindow to %d\n",maxColumns);
|
||||
|
||||
short sOld = m_sMaxColumns;
|
||||
m_sMaxColumns = maxColumns;
|
||||
SetupConsole (SC_MAXCOLUMNS);
|
||||
return sOld;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
short CConsole::GetMaxColumnsInWindow ()
|
||||
{
|
||||
return (short) GetSettings (SC_MAXCOLUMNS);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//Now here we have the basic beginning traits of a CConsole.
|
||||
//But it has to do more than Allocing and Freeing consoles.
|
||||
//So here it is..
|
||||
|
||||
|
||||
void CConsole::RedirectToConsole (WORD wFlags)
|
||||
{
|
||||
int hConHandle;
|
||||
long lStdHandle;
|
||||
HANDLE nStdHandle;
|
||||
CONSOLE_SCREEN_BUFFER_INFO coninfo;
|
||||
FILE *fp;
|
||||
|
||||
// Create the Console
|
||||
CreateConsole();
|
||||
nStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
lStdHandle = (long)nStdHandle;
|
||||
|
||||
// set the screen buffer to be big enough to let us scroll text
|
||||
GetConsoleScreenBufferInfo(nStdHandle,&coninfo);
|
||||
SetupConsole (SC_COLUMNS|SC_LINES|SC_ATTRIB|SC_MAXLINES|SC_MAXCOLUMNS);
|
||||
|
||||
// redirect unbuffered STDOUT to the console
|
||||
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
|
||||
fp = _fdopen( hConHandle, "w" );
|
||||
*stdout = *fp;
|
||||
setvbuf( stdout, NULL, _IONBF, 0 );
|
||||
|
||||
// redirect unbuffered STDIN to the console
|
||||
nStdHandle = GetStdHandle(STD_INPUT_HANDLE);
|
||||
lStdHandle = (long)nStdHandle;
|
||||
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
|
||||
fp = _fdopen( hConHandle, "r" );
|
||||
*stdin = *fp;
|
||||
setvbuf( stdin, NULL, _IONBF, 0 );
|
||||
|
||||
// redirect unbuffered STDERR to the console
|
||||
lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE);
|
||||
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
|
||||
fp = _fdopen( hConHandle, "w" );
|
||||
*stderr = *fp;
|
||||
setvbuf( stderr, NULL, _IONBF, 0 );
|
||||
// make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog
|
||||
// point to console as well
|
||||
ios::sync_with_stdio();
|
||||
m_bRedirected = TRUE; //Whether the Console is redirected
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
/*
|
||||
This will be function which will actually set up the console to the user
|
||||
settings.
|
||||
*/
|
||||
BOOL CConsole::SetupConsole(WORD wFlags)
|
||||
{
|
||||
HANDLE nStdHandle;
|
||||
long lStdHandle;
|
||||
CONSOLE_SCREEN_BUFFER_INFO coninfo;
|
||||
|
||||
if (!sm_bConsole)
|
||||
return FALSE; // There aint no console to set up, Duh
|
||||
nStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
lStdHandle = (long)nStdHandle;
|
||||
// set the screen buffer to be big enough to let us scroll text
|
||||
if(!GetConsoleScreenBufferInfo(nStdHandle,&coninfo)){
|
||||
if(CONSOLE_DEBUG)printf("***Error*** GetConsoleScreenBufferInfo failed\n");
|
||||
if(CONSOLE_DEBUG)printwindata();
|
||||
}
|
||||
if(CONSOLE_DEBUG) printf("BBB: \n");
|
||||
if(CONSOLE_DEBUG) printwindata();
|
||||
if (wFlags & SC_COLUMNS || wFlags & SC_LINES) //Set up only the columns
|
||||
{
|
||||
if(CONSOLE_DEBUG)printf("Either SC_COLUMNS or SC_LINES set m_sNumColumns to %d and m_sNumLines to %d\n",
|
||||
m_sNumColumns,m_sNumLines);
|
||||
//Number of Columns to be set
|
||||
if (m_sNumColumns)
|
||||
coninfo.dwSize.X = m_sNumColumns;
|
||||
// number of lines to be set
|
||||
if (m_sNumLines){
|
||||
coninfo.dwSize.Y = m_sNumLines;
|
||||
}
|
||||
|
||||
//Set the screen buffer size
|
||||
if(!SetConsoleScreenBufferSize(nStdHandle,coninfo.dwSize)){
|
||||
|
||||
printf("***Error*** SetConsoleScreenBufferSize failed\n");
|
||||
printwindata();
|
||||
};
|
||||
|
||||
}
|
||||
if (wFlags & SC_ATTRIB)
|
||||
{
|
||||
//Attributes as specified
|
||||
if(CONSOLE_DEBUG)printf("SC_ATTRIB\n");
|
||||
if (m_wAttrib)
|
||||
coninfo.wAttributes = m_wAttrib;
|
||||
//Set the Text attributes
|
||||
if(!SetConsoleTextAttribute (nStdHandle,coninfo.wAttributes)){
|
||||
printf("***Error*** SetConsoleTextAttribute failed\n");
|
||||
printwindata();
|
||||
}
|
||||
}
|
||||
|
||||
if (wFlags & SC_MAXLINES || wFlags & SC_MAXCOLUMNS)
|
||||
{
|
||||
if(CONSOLE_DEBUG) printf("SC_MAXLINES: %d;SC_MAXCOLUMNS: %d\n",m_sMaxLines,m_sMaxColumns);
|
||||
SMALL_RECT rect;
|
||||
|
||||
//Maximum Size of the window
|
||||
if (m_sMaxLines)
|
||||
rect.Bottom= m_sMaxLines;
|
||||
else
|
||||
rect.Bottom = coninfo.dwMaximumWindowSize.Y;
|
||||
|
||||
if (m_sMaxColumns)
|
||||
rect.Right = m_sMaxColumns;
|
||||
else
|
||||
rect.Right = coninfo.dwMaximumWindowSize.X;
|
||||
// if (m_sNumColumns)
|
||||
// rect.Right = m_sNumColumns;
|
||||
// else
|
||||
// rect.Right = coninfo.dwMaximumWindowSize.X;
|
||||
rect.Top = rect.Left = 0;
|
||||
|
||||
//Set the console window maximum size
|
||||
if(!SetConsoleWindowInfo (nStdHandle,TRUE,&rect)){
|
||||
DWORD lasterr = GetLastError();
|
||||
printf("lasterr: %d\n",lasterr);
|
||||
|
||||
printf("***Error*** SetConsoleWindowInfo failed\n");
|
||||
printwindata();
|
||||
}
|
||||
}
|
||||
if(CONSOLE_DEBUG) printf("AAA: \n");
|
||||
if(CONSOLE_DEBUG) printwindata();
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
HANDLE CConsole::GetHandle (DWORD dwFlag)
|
||||
{
|
||||
if (!sm_bConsole)
|
||||
return (HANDLE) NULL;
|
||||
return GetStdHandle (dwFlag);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
BOOL CConsole::Clear ()
|
||||
{
|
||||
COORD coordScreen = { 0, 0 }; /* here's where we'll home the
|
||||
cursor */
|
||||
BOOL bSuccess;
|
||||
DWORD cCharsWritten;
|
||||
CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */
|
||||
DWORD dwConSize; /* number of character cells in
|
||||
the current buffer */
|
||||
|
||||
if (!sm_bConsole)
|
||||
return FALSE;
|
||||
HANDLE hConsole = GetHandle (STD_OUTPUT_HANDLE);
|
||||
|
||||
/* get the number of character cells in the current buffer */
|
||||
|
||||
|
||||
bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );
|
||||
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
|
||||
if (!bSuccess) return bSuccess;
|
||||
|
||||
/* fill the entire screen with blanks */
|
||||
|
||||
bSuccess = FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',
|
||||
dwConSize, coordScreen, &cCharsWritten );
|
||||
if (!bSuccess) return bSuccess;
|
||||
|
||||
/* get the current text attribute */
|
||||
|
||||
bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );
|
||||
if (!bSuccess) return bSuccess;
|
||||
|
||||
/* now set the buffer's attributes accordingly */
|
||||
|
||||
bSuccess = FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
|
||||
dwConSize, coordScreen, &cCharsWritten );
|
||||
if (!bSuccess) return bSuccess;
|
||||
|
||||
/* put the cursor at (0, 0) */
|
||||
|
||||
bSuccess = SetConsoleCursorPosition( hConsole, coordScreen );
|
||||
if (!bSuccess) return bSuccess;
|
||||
return TRUE;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
BOOL CConsole::ApplyAttrib (short NumChars)
|
||||
{
|
||||
COORD coordScreen = { 0, 0 }; /* here's where we'll home the
|
||||
cursor */
|
||||
BOOL bSuccess;
|
||||
DWORD cCharsWritten;
|
||||
CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */
|
||||
DWORD dwConSize; /* number of character cells in
|
||||
the current buffer */
|
||||
if (!sm_bConsole)
|
||||
return FALSE;
|
||||
HANDLE hConsole = GetHandle (STD_OUTPUT_HANDLE);
|
||||
bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );
|
||||
if(!bSuccess)
|
||||
printf("***Error*** GetConsoleScreenBufferInfo failed\n");
|
||||
if (!bSuccess) return bSuccess;
|
||||
|
||||
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
|
||||
bSuccess = FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
|
||||
NumChars?NumChars:dwConSize, csbi.dwCursorPosition, &cCharsWritten );
|
||||
|
||||
return bSuccess;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
WORD CConsole::GetSettings (WORD wFlags)
|
||||
{
|
||||
long lStdHandle;
|
||||
HANDLE nStdHandle;
|
||||
CONSOLE_SCREEN_BUFFER_INFO coninfo;
|
||||
|
||||
if (!sm_bConsole)
|
||||
return FALSE; // There aint no console to set up, Duh
|
||||
nStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
lStdHandle = (long)nStdHandle;
|
||||
// set the screen buffer to be big enough to let us scroll text
|
||||
GetConsoleScreenBufferInfo(nStdHandle,&coninfo);
|
||||
if(!GetConsoleScreenBufferInfo(nStdHandle,&coninfo))
|
||||
printf("***Error*** GetConsoleScreenBufferInfo failed\n");
|
||||
|
||||
switch (wFlags)
|
||||
{
|
||||
case SC_ATTRIB:
|
||||
return coninfo.wAttributes;
|
||||
break;
|
||||
case SC_LINES:
|
||||
return coninfo.dwSize.Y;
|
||||
break;
|
||||
case SC_COLUMNS:
|
||||
return coninfo.dwSize.X;
|
||||
break;
|
||||
case SC_MAXLINES:
|
||||
return coninfo.dwMaximumWindowSize.Y;
|
||||
break;
|
||||
case SC_MAXCOLUMNS:
|
||||
return coninfo.dwMaximumWindowSize.X;
|
||||
break;
|
||||
default:
|
||||
printf("***Error*** Wrong case label in GetSettings\n");
|
||||
printwindata();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CConsole::printwindata()
|
||||
{
|
||||
printf ("NumLines:%d,Columns:%d,Attributes:%d,MaxLines:%d,MaxColumns:%d\n",
|
||||
GetNumberOfLines(),GetNumberOfColumns (), GetAttributes(),
|
||||
GetMaxLinesInWindow(),GetMaxColumnsInWindow());
|
||||
|
||||
}
|
61
GDE_3_2008/Console/Console.h
Normal file
61
GDE_3_2008/Console/Console.h
Normal file
|
@ -0,0 +1,61 @@
|
|||
#ifndef __CONSOLE_H__
|
||||
#define __CONSOLE_H__
|
||||
|
||||
|
||||
|
||||
//Some defines we will be requiring
|
||||
#define SC_LINES 0x0001
|
||||
#define SC_COLUMNS 0x0002
|
||||
#define SC_ATTRIB 0x0004
|
||||
#define SC_MAXLINES 0x0008
|
||||
#define SC_MAXCOLUMNS 0x0010
|
||||
|
||||
|
||||
#define CONSOLE_DEBUG 0
|
||||
|
||||
class CConsole
|
||||
{
|
||||
public:
|
||||
//Constructor & Destructor
|
||||
CConsole ();
|
||||
CConsole (BOOL);
|
||||
~CConsole ();
|
||||
|
||||
//Properties
|
||||
short GetNumberOfLines();
|
||||
short SetNumberOfLines (short sLines);
|
||||
short SetNumberOfColumns (short sColumns);
|
||||
short GetNumberOfColumns ();
|
||||
WORD GetAttributes ();
|
||||
WORD SetAttributes (WORD wAttrib,short NumChars = 0);
|
||||
short SetMaxLinesInWindow (short maxLines);
|
||||
short GetMaxLinesInWindow ();
|
||||
short SetMaxColumnsInWindow (short maxLines);
|
||||
short GetMaxColumnsInWindow ();
|
||||
|
||||
//Methods
|
||||
void RedirectToConsole (WORD wFlags);
|
||||
BOOL SetupConsole(WORD wFlags);
|
||||
HANDLE GetHandle (DWORD dwFlag);
|
||||
BOOL Clear ();
|
||||
BOOL ApplyAttrib (short NumChars);
|
||||
WORD GetSettings (WORD wFlags);
|
||||
void printwindata();
|
||||
|
||||
protected:
|
||||
|
||||
//Helpers
|
||||
BOOL CreateConsole ();
|
||||
BOOL DestroyConsole ();
|
||||
|
||||
BOOL m_bRedirected;
|
||||
short m_sNumColumns;
|
||||
short m_sNumLines;
|
||||
WORD m_wAttrib;
|
||||
short m_sMaxLines;
|
||||
short m_sMaxColumns;
|
||||
DWORD m_dwError;
|
||||
static BOOL sm_bConsole;
|
||||
|
||||
};
|
||||
#endif //__CONSOLE_H__
|
77
GDE_3_2008/Cparser.cpp
Normal file
77
GDE_3_2008/Cparser.cpp
Normal file
|
@ -0,0 +1,77 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
#include<map>
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "Cparser.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
#define Getc(s) getc(s)
|
||||
#define Ungetc(c) ungetc(c,IP_Input)
|
||||
|
||||
/* Lexical analyser states. */
|
||||
|
||||
enum lexstate{L_START,L_INT,L_IDENT};
|
||||
|
||||
|
||||
int Cparser::yylex(){
|
||||
int c;
|
||||
lexstate s;
|
||||
|
||||
for(s=L_START, yytext="";1;){
|
||||
c= Getc(IP_Input);
|
||||
yytext=yytext+(char)c;
|
||||
switch (s){
|
||||
|
||||
case L_START:
|
||||
if(isdigit(c)){
|
||||
if((char)c!='x'){
|
||||
s=L_INT;
|
||||
}else{
|
||||
Ungetc(c);
|
||||
yytext=yytext.substr(0,yytext.size()-1);
|
||||
yytext1+='1';
|
||||
yytext+='0';// ab hier gut überlegen falls x auftritte
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}else if (isspace(c)||isalpha(c)){
|
||||
s=L_IDENT;
|
||||
}else if(c==EOF){
|
||||
return 0;
|
||||
}else if (c=='\n'){ LineNumber+=1;
|
||||
}else { return 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case L_INT:
|
||||
if(isdigit(c)){ break;
|
||||
}else {
|
||||
Ungetc(c);
|
||||
yylval.s=yytext.substr(0,yytext.size()-1);
|
||||
}
|
||||
|
||||
break;
|
||||
case L_IDENT:
|
||||
if(isalpha(c)){
|
||||
yylval.s=yytext.substr(0,yytext.size()-1);
|
||||
yylval.i=atoi(yylval.s.c_str());
|
||||
yytext="";
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("*** Fatal Error!!!!!*** Wrong case label in yylex\n");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
49
GDE_3_2008/Cparser.h
Normal file
49
GDE_3_2008/Cparser.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
#ifndef CPARSER
|
||||
#define CPARSER
|
||||
|
||||
#include <string>
|
||||
#include "PrimImplikanten.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
class Cparser{
|
||||
private:
|
||||
|
||||
PrimImplikant implikant;
|
||||
|
||||
public:
|
||||
string yytext;
|
||||
string yytext1;
|
||||
int LineNumber;
|
||||
|
||||
struct tyylval{
|
||||
string s;
|
||||
int i;
|
||||
}yylval;
|
||||
|
||||
FILE* IP_Input;
|
||||
void pr_tokentable();
|
||||
void load_tokenentry(string s ,int x);
|
||||
int yylex();
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
172
GDE_3_2008/GDE_3.cpp
Normal file
172
GDE_3_2008/GDE_3.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
// GDE_3.cpp : Definiert das Klassenverhalten für die Anwendung.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "console\console.h"
|
||||
#include "GDE_3.h"
|
||||
#include "MainFrm.h"
|
||||
|
||||
#include "GDE_3Doc.h"
|
||||
#include "GDE_3View.h"
|
||||
#include ".\gde_3.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CGDE_3App
|
||||
|
||||
BEGIN_MESSAGE_MAP(CGDE_3App, CWinApp)
|
||||
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
|
||||
// Dateibasierte Standarddokumentbefehle
|
||||
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
|
||||
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
|
||||
// Standarddruckbefehl "Seite einrichten"
|
||||
ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
|
||||
ON_COMMAND(ID_APP_EXIT, OnAppExit)
|
||||
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CGDE_3App-Erstellung
|
||||
|
||||
CGDE_3App::CGDE_3App()
|
||||
{
|
||||
// TODO: Hier Code zur Konstruktion einfügen
|
||||
// Alle wichtigen Initialisierungen in InitInstance positionieren
|
||||
m_stopflag=FALSE;
|
||||
}
|
||||
|
||||
|
||||
// Das einzige CGDE_3App-Objekt
|
||||
|
||||
CGDE_3App theApp;
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/*Console object*/
|
||||
CConsole con(TRUE);
|
||||
// Dieser thread startet die Funktion main(), in der Benutzer seinen Code hat.
|
||||
UINT StartGDE(LPVOID lpv)
|
||||
{
|
||||
extern void user_main();
|
||||
user_main();
|
||||
theApp.vw->uthread=NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// CGDE_3App Initialisierung
|
||||
|
||||
BOOL CGDE_3App::InitInstance()
|
||||
{
|
||||
// InitCommonControls() ist für Windows XP erforderlich, wenn ein Anwendungsmanifest
|
||||
// die Verwendung von ComCtl32.dll Version 6 oder höher zum Aktivieren
|
||||
// von visuellen Stilen angibt. Ansonsten treten beim Erstellen von Fenstern Fehler auf.
|
||||
InitCommonControls();
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
// OLE-Bibliotheken initialisieren
|
||||
if (!AfxOleInit())
|
||||
{
|
||||
AfxMessageBox(IDP_OLE_INIT_FAILED);
|
||||
return FALSE;
|
||||
}
|
||||
AfxEnableControlContainer();
|
||||
// Standardinitialisierung
|
||||
// Wenn Sie diese Features nicht verwenden und die Größe
|
||||
// der ausführbaren Datei verringern möchten, entfernen Sie
|
||||
// die nicht erforderlichen Initialisierungsroutinen.
|
||||
// Ändern Sie den Registrierungsschlüssel unter dem Ihre Einstellungen gespeichert sind.
|
||||
// TODO: Ändern Sie diese Zeichenfolge entsprechend,
|
||||
// z.B. zum Namen Ihrer Firma oder Organisation.
|
||||
SetRegistryKey(_T("GDE3"));
|
||||
LoadStdProfileSettings(16); // Standard INI-Dateioptionen laden (einschließlich MRU)
|
||||
// Dokumentvorlagen der Anwendung registrieren. Dokumentvorlagen
|
||||
// dienen als Verbindung zwischen Dokumenten, Rahmenfenstern und Ansichten.
|
||||
CSingleDocTemplate* pDocTemplate;
|
||||
pDocTemplate = new CSingleDocTemplate(
|
||||
IDR_MAINFRAME,
|
||||
RUNTIME_CLASS(CGDE_3Doc),
|
||||
RUNTIME_CLASS(CMainFrame), // Haupt-SDI-Rahmenfenster
|
||||
RUNTIME_CLASS(CGDE_3View));
|
||||
if (!pDocTemplate)
|
||||
return FALSE;
|
||||
AddDocTemplate(pDocTemplate);
|
||||
// Befehlszeile parsen, um zu prüfen auf Standardumgebungsbefehle DDE, Datei offen
|
||||
CCommandLineInfo cmdInfo;
|
||||
ParseCommandLine(cmdInfo);
|
||||
// Verteilung der in der Befehlszeile angegebenen Befehle. Es wird FALSE zurückgegeben, wenn
|
||||
// die Anwendung mit /RegServer, /Register, /Unregserver oder /Unregister gestartet wurde.
|
||||
if (!ProcessShellCommand(cmdInfo))
|
||||
return FALSE;
|
||||
// Das einzige Fenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden.
|
||||
m_pMainWnd->ShowWindow(SW_SHOW);
|
||||
m_pMainWnd->UpdateWindow();
|
||||
// Rufen Sie DragAcceptFiles nur auf, wenn eine Suffix vorhanden ist.
|
||||
// In einer SDI-Anwendung ist dies nach ProcessShellCommand erforderlich
|
||||
|
||||
/*Console start*/
|
||||
con.RedirectToConsole(0);
|
||||
con.SetNumberOfColumns (120);
|
||||
Sleep(10);
|
||||
con.SetNumberOfLines (2500);
|
||||
Sleep(10);
|
||||
/*Console end*/
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// CAboutDlg-Dialogfeld für Anwendungsbefehl 'Info'
|
||||
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// Dialogfelddaten
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
|
||||
|
||||
// Implementierung
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||
{
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
// Anwendungsbefehl zum Ausführen des Dialogfelds
|
||||
void CGDE_3App::OnAppAbout()
|
||||
{
|
||||
CAboutDlg aboutDlg;
|
||||
aboutDlg.DoModal();
|
||||
}
|
||||
|
||||
|
||||
// CGDE_3App Meldungshandler
|
||||
|
||||
|
||||
void CGDE_3App::OnAppExit()
|
||||
{
|
||||
// TODO: Fügen Sie hier Ihren Befehlsbehandlungscode ein.
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CGDE_3App::OnFileOpen()
|
||||
{
|
||||
// TODO: Fügen Sie hier Ihren Befehlsbehandlungscode ein.
|
||||
}
|
39
GDE_3_2008/GDE_3.h
Normal file
39
GDE_3_2008/GDE_3.h
Normal file
|
@ -0,0 +1,39 @@
|
|||
// GDE_3.h : Hauptheaderdatei für die GDE_3-Anwendung
|
||||
//
|
||||
#ifndef _GDE_3_H
|
||||
#define _GDE_3_H
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error 'stdafx.h' muss vor dieser Datei in PCH eingeschlossen werden.
|
||||
#endif
|
||||
|
||||
#include "resource.h" // Hauptsymbole
|
||||
|
||||
|
||||
// CGDE_3App:
|
||||
// Siehe GDE_3.cpp für die Implementierung dieser Klasse
|
||||
//
|
||||
class CGDE_3View;
|
||||
|
||||
class CGDE_3App : public CWinApp
|
||||
{
|
||||
public:
|
||||
CGDE_3App();
|
||||
CGDE_3View *vw; //actual view
|
||||
BOOL m_stopflag;
|
||||
|
||||
|
||||
// Überschreibungen
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// Implementierung
|
||||
afx_msg void OnAppAbout();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
afx_msg void OnAppExit();
|
||||
afx_msg void OnFileOpen();
|
||||
};
|
||||
|
||||
extern CGDE_3App theApp;
|
||||
#endif
|
396
GDE_3_2008/GDE_3.rc
Normal file
396
GDE_3_2008/GDE_3.rc
Normal file
|
@ -0,0 +1,396 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Deutsch (Deutschland) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)\r\n"
|
||||
"LANGUAGE 7, 1\r\n"
|
||||
"#pragma code_page(1252)\r\n"
|
||||
"#include ""res\\GDE_3.rc2"" // Nicht mit Microsoft Visual C++ bearbeitete Ressourcen\r\n"
|
||||
"#include ""afxres.rc"" // Standardkomponenten\r\n"
|
||||
"#include ""afxprint.rc"" // Ressourcen für Drucken/Seitenansicht\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON "res\\GDE_3.ico"
|
||||
IDR_GDE_3TYPE ICON "res\\GDE_3Doc.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Bitmap
|
||||
//
|
||||
|
||||
IDR_MAINFRAME BITMAP "res\\Toolbar.bmp"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Toolbar
|
||||
//
|
||||
|
||||
IDR_MAINFRAME TOOLBAR 16, 15
|
||||
BEGIN
|
||||
BUTTON ID_FILE_NEW
|
||||
BUTTON ID_FILE_OPEN
|
||||
BUTTON ID_FILE_SAVE
|
||||
SEPARATOR
|
||||
BUTTON ID_FILE_PRINT
|
||||
BUTTON ID_APP_ABOUT
|
||||
SEPARATOR
|
||||
BUTTON ID_BUTTONZOOMOUT
|
||||
BUTTON ID_BUTTONZOOMIN
|
||||
BUTTON ID_BUTTONZOOMFIT
|
||||
BUTTON ID_STARTBUTTON
|
||||
BUTTON ID_STOPBUTTON
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Menu
|
||||
//
|
||||
|
||||
IDR_MAINFRAME MENU
|
||||
BEGIN
|
||||
POPUP "&Datei"
|
||||
BEGIN
|
||||
MENUITEM "&Neu\tStrg+N", ID_FILE_NEW
|
||||
MENUITEM "Ö&ffnen...\tStrg+O", ID_FILE_OPEN
|
||||
MENUITEM "&Speichern\tStrg+S", ID_FILE_SAVE
|
||||
MENUITEM "Speichern &unter...", ID_FILE_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Drucken...\tStrg+P", ID_FILE_PRINT
|
||||
MENUITEM "&Seitenansicht", ID_FILE_PRINT_PREVIEW
|
||||
MENUITEM "Dru&ckeinrichtung...", ID_FILE_PRINT_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Letzte Datei", ID_FILE_MRU_FILE1, GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Beenden", ID_APP_EXIT
|
||||
END
|
||||
POPUP "&Bearbeiten"
|
||||
BEGIN
|
||||
MENUITEM "&Rückgängig\tStrg+Z", ID_EDIT_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Ausschneiden\tStrg+X", ID_EDIT_CUT
|
||||
MENUITEM "&Kopieren\tStrg+C", ID_EDIT_COPY
|
||||
MENUITEM "&Einfügen\tStrg+V", ID_EDIT_PASTE
|
||||
END
|
||||
POPUP "&Ansicht"
|
||||
BEGIN
|
||||
MENUITEM "&Symbolleiste", ID_VIEW_TOOLBAR
|
||||
MENUITEM "Status&leiste", ID_VIEW_STATUS_BAR
|
||||
END
|
||||
POPUP "&Hilfe"
|
||||
BEGIN
|
||||
MENUITEM "&Info über GDE_3...", ID_APP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Accelerator
|
||||
//
|
||||
|
||||
IDR_MAINFRAME ACCELERATORS
|
||||
BEGIN
|
||||
"N", ID_FILE_NEW, VIRTKEY, CONTROL
|
||||
"O", ID_FILE_OPEN, VIRTKEY, CONTROL
|
||||
"S", ID_FILE_SAVE, VIRTKEY, CONTROL
|
||||
"P", ID_FILE_PRINT, VIRTKEY, CONTROL
|
||||
"Z", ID_EDIT_UNDO, VIRTKEY, CONTROL
|
||||
"X", ID_EDIT_CUT, VIRTKEY, CONTROL
|
||||
"C", ID_EDIT_COPY, VIRTKEY, CONTROL
|
||||
"V", ID_EDIT_PASTE, VIRTKEY, CONTROL
|
||||
VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT
|
||||
VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT
|
||||
VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL
|
||||
VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT
|
||||
VK_F6, ID_NEXT_PANE, VIRTKEY
|
||||
VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CAPTION "Info über GDE_3"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
|
||||
LTEXT "GDE_3 Version 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX
|
||||
LTEXT "Copyright (C) 2007",IDC_STATIC,40,25,119,8
|
||||
DEFPUSHBUTTON "OK",IDOK,178,7,50,16,WS_GROUP
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040704e4"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "TODO: <Firmenname>"
|
||||
VALUE "FileDescription", "TODO: <Dateibeschreibung>"
|
||||
VALUE "FileVersion", "1.0.0.1"
|
||||
VALUE "InternalName", "GDE_3.exe"
|
||||
VALUE "Copyright (C) 2007", "TODO: (c) <Firmenname>. Alle Rechte vorbehalten."
|
||||
VALUE "OriginalFilename", "GDE_3.exe"
|
||||
VALUE "ProductName", "TODO: <Product name>"
|
||||
VALUE "ProductVersion", "1.0.0.1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x407, 1252
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 228
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 48
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDR_MAINFRAME "GDE_3\n\nGDE_3\n\n\nGDE3.Document\nGDE_3.Document"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
AFX_IDS_APP_TITLE "GDE_3"
|
||||
AFX_IDS_IDLEMESSAGE "Bereit"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_INDICATOR_EXT "ER"
|
||||
ID_INDICATOR_CURPOS "x,y "
|
||||
ID_INDICATOR_CAPS "UF"
|
||||
ID_INDICATOR_NUM "NUM"
|
||||
ID_INDICATOR_SCRL "RF"
|
||||
ID_INDICATOR_OVR "ÜB"
|
||||
ID_INDICATOR_REC "MA"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_FILE_NEW "Erstellt ein neues Dokument.\nNeu"
|
||||
ID_FILE_OPEN "Öffnet ein vorhandenes Dokument.\nÖffnen"
|
||||
ID_FILE_CLOSE "Schließt das aktive Dokument.\nSchließen"
|
||||
ID_FILE_SAVE "Speichert das aktive Dokument.\nSpeichern"
|
||||
ID_FILE_SAVE_AS "Speichert das aktive Dokument unter einem neuem Namen.\nSpeichern unter"
|
||||
ID_FILE_PAGE_SETUP "Ändert die Druckoptionen.\nSeite einrichten"
|
||||
ID_FILE_PRINT_SETUP "Ändert den Drucker und die Druckoptionen.\nDruckereinrichtung"
|
||||
ID_FILE_PRINT "Druckt das aktive Dokument.\nDrucken"
|
||||
ID_FILE_PRINT_PREVIEW "Zeigt ganze Seiten an.\nSeitenansicht"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_APP_ABOUT "Zeigt Programm-, Versions- und Copyrightinformationen an.\nInfo"
|
||||
ID_APP_EXIT "Beendet die Anwendung und fordert zum Speichern der Dokumente auf.\nBeenden"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_FILE_MRU_FILE1 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE2 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE3 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE4 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE5 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE6 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE7 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE8 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE9 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE10 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE11 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE12 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE13 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE14 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE15 "Öffnet das Dokument."
|
||||
ID_FILE_MRU_FILE16 "Öffnet das Dokument."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_NEXT_PANE "Wechselt zum nächsten Fensterbereich.\nNächster Bereich"
|
||||
ID_PREV_PANE "Wechselt zum vorherigen Fensterbereich.\nVorheriger Bereich"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_WINDOW_SPLIT "Teilt das aktive Fenster in Bereiche.\nTeilen"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_EDIT_CLEAR "Löscht die Auswahl.\nLöschen"
|
||||
ID_EDIT_CLEAR_ALL "Löscht alles.\nAlles löschen"
|
||||
ID_EDIT_COPY "Kopiert die Auswahl in die Zwischenablage.\nKopieren"
|
||||
ID_EDIT_CUT "Überträgt die Auswahl in die Zwischenablage.\nAusschneiden"
|
||||
ID_EDIT_FIND "Sucht den angegebenen Text.\nSuchen"
|
||||
ID_EDIT_PASTE "Fügt den Inhalt der Zwischenablage ein.\nEinfügen"
|
||||
ID_EDIT_REPEAT "Wiederholt den letzten Vorgang.\nWiederholen"
|
||||
ID_EDIT_REPLACE "Ersetzt den angegebenen Text.\nErsetzen"
|
||||
ID_EDIT_SELECT_ALL "Markiert das gesamte Dokument.\nAlles auswählen"
|
||||
ID_EDIT_UNDO "Macht den letzten Vorgang rückgängig.\nRückgängig"
|
||||
ID_EDIT_REDO "Wiederholt den zuletzt rückgängig gemachten Vorgang.\nWiederherstellen"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_VIEW_TOOLBAR "Blendet die Symbolleiste ein oder aus.\nSymbolleiste"
|
||||
ID_VIEW_STATUS_BAR "Blendet die Statusleiste ein oder aus.\nStatusleiste"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
AFX_IDS_SCSIZE "Ändert die Fenstergröße."
|
||||
AFX_IDS_SCMOVE "Ändert die Position des Fensters."
|
||||
AFX_IDS_SCMINIMIZE "Minimiert das Fenster."
|
||||
AFX_IDS_SCMAXIMIZE "Maximiert das Fenster."
|
||||
AFX_IDS_SCNEXTWINDOW "Wechselt zum nächsten Dokumentfenster."
|
||||
AFX_IDS_SCPREVWINDOW "Wechselt zum vorherigen Dokumentfenster."
|
||||
AFX_IDS_SCCLOSE "Schließt das aktive Fenster und fordert zum Speichern des Dokuments auf."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
AFX_IDS_SCRESTORE "Stellt die ursprüngliche Fenstergröße wieder her."
|
||||
AFX_IDS_SCTASKLIST "Aktiviert die Taskliste."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
AFX_IDS_PREVIEW_CLOSE "Beendet die Seitenansicht.\nSeitenansicht beenden"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_BUTTONZOOMOUT "Zoom Out"
|
||||
ID_BUTTONZOOMIN "Zoom In"
|
||||
ID_BUTTONZOOMFIT "Originale Size"
|
||||
ID_STARTBUTTON "Start the Application"
|
||||
ID_STOPBUTTON "Stop the Application"
|
||||
END
|
||||
|
||||
#endif // Deutsch (Deutschland) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
|
||||
LANGUAGE 7, 1
|
||||
#pragma code_page(1252)
|
||||
#include "res\GDE_3.rc2" // Nicht mit Microsoft Visual C++ bearbeitete Ressourcen
|
||||
#include "afxres.rc" // Standardkomponenten
|
||||
#include "afxprint.rc" // Ressourcen für Drucken/Seitenansicht
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
19
GDE_3_2008/GDE_3.sln
Normal file
19
GDE_3_2008/GDE_3.sln
Normal file
|
@ -0,0 +1,19 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GDE_3", "GDE_3.vcxproj", "{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
19
GDE_3_2008/GDE_3.sln.old
Normal file
19
GDE_3_2008/GDE_3.sln.old
Normal file
|
@ -0,0 +1,19 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GDE_3", "GDE_3.vcproj", "{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
BIN
GDE_3_2008/GDE_3.suo.old
Normal file
BIN
GDE_3_2008/GDE_3.suo.old
Normal file
Binary file not shown.
375
GDE_3_2008/GDE_3.vcproj
Normal file
375
GDE_3_2008/GDE_3.vcproj
Normal file
|
@ -0,0 +1,375 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="GDE_3"
|
||||
ProjectGUID="{B0DC7B0A-75D1-4BF6-9861-3C4056C4AA6B}"
|
||||
Keyword="MFCProj"
|
||||
TargetFrameworkVersion="131072"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="true"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="false"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1031"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
|
||||
MinimalRebuild="false"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="true"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1031"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Quelldateien"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\GDE_3.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GDE_3Doc.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GDE_3View.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\MainFrm.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\user.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Headerdateien"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\GDE_3.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GDE_3Doc.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GDE_3View.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\MainFrm.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Resource.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\User.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Ressourcendateien"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\res\GDE_3.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GDE_3.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\GDE_3.rc2"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\GDE_3Doc.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\Toolbar.bmp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Graphics"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Graphics\BaseException.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Graphics\Dib.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Graphics\Dib.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Graphics\Graphicfunctions.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Graphics\Graphicfunctions.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Graphics\Image.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Graphics\PointerArray.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Graphics\Shape.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Graphics\Shape.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Console"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Console\Console.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Console\Console.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\res\GDE_3.manifest"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt"
|
||||
>
|
||||
</File>
|
||||
</Files> |