private void button1_Click(object sender, EventArgs e)
        {
            MainLib 인코딩디코딩코드_생성기 = new MainLib();

            Int16  maxBufferSize        = Convert.ToInt16(textBoxMaxBufferSize.Text);
            string packetDataNamePrefix = "PKT";

            var fileLoadingResult = 인코딩디코딩코드_생성기.CppParse.ParseFile(textBoxCppSourceFileFullPath.Text, maxBufferSize, packetDataNamePrefix);

            if (fileLoadingResult != ERROR_CODE.NONE)
            {
                MessageBox.Show(string.Format("패킷 데이터 구조체 파싱 실패. {0}", fileLoadingResult.ToString()));
                return;
            }


            // C++ 엔코딩/디코딩 소스
            var result = 인코딩디코딩코드_생성기.CppPacketEnDecode.Generate(textBoxGenerateCppFileNamespace.Text, 인코딩디코딩코드_생성기.CppParse.FileName, 인코딩디코딩코드_생성기.CppParse.구조체정의_사전);

            if (result != ERROR_CODE.NONE)
            {
                MessageBox.Show(string.Format("C++ 프로토콜 인코딩/디코딩 코드 생성 실패. {0}", result.ToString()));
                return;
            }

            인코딩디코딩코드_생성기.WriteFile(textBoxGenerateCppFileFullPath.Text, 인코딩디코딩코드_생성기.CppPacketEnDecode.FullSourceCode);


            // C# 프로토콜 소스
            result = 인코딩디코딩코드_생성기.CSharpPacketData.GenerateCode(textBoxGenerateCSharpPacketFileNamespace.Text, 인코딩디코딩코드_생성기.CppParse.구조체정의_사전, 인코딩디코딩코드_생성기.CppParse.상수정의_사전);

            if (result != ERROR_CODE.NONE)
            {
                MessageBox.Show(string.Format("C# 프로토콜 코드 생성 실패. {0}", result.ToString()));
                return;
            }

            인코딩디코딩코드_생성기.WriteFile(textBoxGenerateCSharpPacketFileFullPath.Text, 인코딩디코딩코드_생성기.CSharpPacketData.GeneratedCode);


            // C# 프로토콜 인코딩/디코딩 소스
            result = 인코딩디코딩코드_생성기.CSharpPacketEnDecode.Generate(textBoxGenerateCSharpEnDecodeFileNamespace.Text, 인코딩디코딩코드_생성기.CppParse.구조체정의_사전);

            if (result != ERROR_CODE.NONE)
            {
                MessageBox.Show(string.Format("C# 프로토콜 인코딩/디코딩 코드 생성 실패. {0}", result.ToString()));
                return;
            }

            인코딩디코딩코드_생성기.WriteFile(textBoxGenerateCSharpEnDecodeFileFullPath.Text, 인코딩디코딩코드_생성기.CSharpPacketEnDecode.FullSourceCode);


            string completeMessage = "";

            completeMessage += string.Format("{0} 위치에 'C++ 프로토콜 인코딩/디코딩 코드' 파일 생성 완료\r\n", textBoxGenerateCppFileFullPath.Text);
            completeMessage += string.Format("{0} 위치에 'C# 프로토콜 코드' 파일 생성 완료\r\n", textBoxGenerateCSharpPacketFileFullPath.Text);
            completeMessage += string.Format("{0} 위치에 'C# 프로토콜 인코딩/디코딩 코드' 파일 생성 완료\r\n", textBoxGenerateCSharpEnDecodeFileFullPath.Text);
            MessageBox.Show(completeMessage);
        }
Пример #2
0
        static void Main(string[] args)
        {
            if (args.Count() != 9)
            {
                Console.WriteLine("입력 인자가 부족합니다");

                Console.WriteLine("프로토콜 파일 full path");

                Console.WriteLine("생성될 C++ 프로토콜 full path");
                Console.WriteLine("엔코드/디코드 최대 버퍼 크기");
                Console.WriteLine("패킷 데이터 구조체 프리픽스");


                Console.WriteLine("생성될 C++ 프로토콜 인코딩/디코딩 파일의 네임스페이스");

                Console.WriteLine("생성될 C# 프로토콜 파일 full path");
                Console.WriteLine("생성될 C# 프로토콜 파일의 네임스페이스");

                Console.WriteLine("생성될 C# 프로토콜 인코딩/디코딩 파일 full path");
                Console.WriteLine("생성될 C# 프로토콜 인코딩/디코딩 파일의 네임스페이스");
                return;
            }

            MainLib 인코딩디코딩코드_생성기 = new MainLib();

            Int16  maxBufferSize        = Convert.ToInt16(args[2]);
            string packetDataNamePrefix = args[3];

            var fileLoadingResult = 인코딩디코딩코드_생성기.CppParse.ParseFile(args[0], maxBufferSize, packetDataNamePrefix);

            if (fileLoadingResult != ERROR_CODE.NONE)
            {
                Console.WriteLine(string.Format("패킷 데이터 구조체 파싱 실패. {0}", fileLoadingResult.ToString()));
                return;
            }


            // C++ 엔코딩/디코딩 소스
            var result = 인코딩디코딩코드_생성기.CppPacketEnDecode.Generate(args[4], 인코딩디코딩코드_생성기.CppParse.FileName, 인코딩디코딩코드_생성기.CppParse.구조체정의_사전);

            if (result != ERROR_CODE.NONE)
            {
                Console.WriteLine(string.Format("패킷 데이터 인코딩/디코딩 코드 생성 실패. {0}", result.ToString()));
                return;
            }

            인코딩디코딩코드_생성기.WriteFile(args[1], 인코딩디코딩코드_생성기.CppPacketEnDecode.FullSourceCode);

            Console.WriteLine(string.Format("{0} 위치에 'Cpp 패킷 데이터 인코딩/디코딩 코드' 파일 생성 완료", args[1]));


            // C# 프로토콜 소스
            result = 인코딩디코딩코드_생성기.CSharpPacketData.GenerateCode(args[6], 인코딩디코딩코드_생성기.CppParse.구조체정의_사전, 인코딩디코딩코드_생성기.CppParse.상수정의_사전);

            if (result != ERROR_CODE.NONE)
            {
                Console.WriteLine(string.Format("C# 프로토콜 코드 생성 실패. {0}", result.ToString()));
                return;
            }

            인코딩디코딩코드_생성기.WriteFile(args[5], 인코딩디코딩코드_생성기.CSharpPacketData.GeneratedCode);
            Console.WriteLine(string.Format("{0} 위치에 'C# 프로토콜 코드' 파일 생성 완료", args[5]));


            // C# 프로토콜 인코딩/디코딩 소스
            result = 인코딩디코딩코드_생성기.CSharpPacketEnDecode.Generate(args[8], 인코딩디코딩코드_생성기.CppParse.구조체정의_사전);

            if (result != ERROR_CODE.NONE)
            {
                Console.WriteLine(string.Format("C# 프로토콜 인코딩/디코딩 코드 생성 실패. {0}", result.ToString()));
                return;
            }

            인코딩디코딩코드_생성기.WriteFile(args[7], 인코딩디코딩코드_생성기.CSharpPacketEnDecode.FullSourceCode);
            Console.WriteLine(string.Format("{0} 위치에 'C# 프로토콜 인코딩/디코딩 코드' 파일 생성 완료", args[7]));
        }