기술과 감성, 그리고.  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
'2010/02'에 해당하는 글(2)
2010/02/18   [행사 발표] SEMICON Korea 2010
2010/02/13   프로그래밍 방식으로 코드를 컴파일하는 방법


[행사 발표] SEMICON Korea 2010

사용자 삽입 이미지

발표 주제   EDA Introduction
발표 내용
   SEMI의 장비 데이터 수집 표준인 EDA(Equipment Data Acquisition)에 대해 자세히 설명하고, EDA가 생산환경의 변화에 미칠 영향에 대해 소개한다.

크리에이티브 커먼즈 라이선스
Creative Commons License


프로그래밍 방식으로 코드를 컴파일하는 방법

.NET Framework에서는 C#이나 VB.NET과 같은 .NET 언어 컴파일러(compiler)에 프로그래밍 방식으로 접근할 수 있도록 해주는 클래스를 제공한다. 이 클래스는 사용자가 런타임(runtime)에 작성한 코드를 즉시 작동 시킬때 유용하다.

.NET Framework에서는 ICodeCompiler 인터페이스(interface)를 통해 컴파일러에 접근할 수 있도록 하고 있다. CSharpCodeProvider, VBCodeProvider 클래스가 각각 이 인터페이스를 지원하고 있는데, 이 클래스를 통해 C# 및 VB.NET 코드를 런타임에 컴파일(compile) 할 수 있다. 본 포스팅(posting)에서는 이중 CSharpCodeProvider를 활용해 C#을 컴파일 할 수 있는 예제를 다룬다. (CSharpCodeProvider 클래스와 VBCodeProvider 클래스는 사용법이 동일하므로 C#예제를 학습하는 것 만으로도 VB.NET을 컴파일 하는데 아무런 어려움이 없을 것이다.)

1. CSharpCodeProvider를 이용해 ICodeCompiler 인터페이스의 객체를 가져온다.

CSharpCodeProvider codeProvider = new CSharpCodeProvider();
ICodeCompiler icc = codeProvider.CreateCompiler();

2. CompilerParameters 클래스를 사용해 ICodeCompiler 인터페이스 객체에 매개 변수(parameter)를 전달한다.

System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = true;
parameters.OutputAssembly = Output;
CompilerResults results = icc.CompileAssemblyFromSource(parameters,SourceString);

위 코드에서 SourceString은 컴파일할 소스 코드를 포한하는 문자열의 배열이다.

3. CompilerResults 객체에는 소스 코드를 컴파일 하는 과정에서 발생하는 오류 정보가 포함된다. 오류 정보는 아래와 같은 코드로 확인해 볼 수 있다.

if (results.Errors.Count > 0)
{
    foreach(CompilerError CompErr in results.Errors)
    {
        textBox2.Text = textBox2.Text +
            "Line number " + CompErr.Line +
            ", Error Number: " + CompErr.ErrorNumber +
            ", '" + CompErr.ErrorText + ";" +
        Environment.NewLine + Environment.NewLine;
    }
}
크리에이티브 커먼즈 라이선스
Creative Commons License


BLOG main image
아직 산을 오르는 이유는 산 만한 사람을 만나지 못했기 때문이고 산 만한 사람이 되지 못했기 때문이다.
 Notice
 Category
분류 전체보기 (136)
일상을 늘어놓다 (38)
나를 찾아 떠나다 (40)
마음을 데우다 (14)
최고를 꿈꾸다 (29)
Resume (15)
 TAGS
톰과 제리 독서 결혼식 김영하 독서사치 랄랄라하우스 스님 스티브잡스 CEO 주례사
 Calendar
«   2010/02   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28            
 Recent Entries
[행사 발표] SEMICON Korea 2010
프로그래밍 방식으로 코드를 컴파일하는 방법
[행사 발표] Miracom Solution Fair 2009 S..
독서사치 (1)
톰과 제리 마지막 이야기
법륜 스님의 주례사
[시] 시인에게 -자조(自嘲)
명품 CEO의 8대 조건
"낙화" - 이형주
[시] 태양(太陽)의 연인(戀人) - 낙엽
 Recent Comments
김영하! 아, 정말 말..
Bailar - 2008
어릴때 단양에 다녀..
짱구눈썹 - 2008
택시 타고 돌아댕길..
택시 - 2008
오랜만에 넷상에서..
쨈 - 2008
너도 잘 지내지? 뭐..
짱구눈썹 - 2008
잘지내고 있어? 친구..
진영 - 2008
질러라~~~ ㅎㅎㅎ 잘..
찬 - 2008
맘에 있으면 먼저 지..
bart - 2008
요즘 차에 관심있다..
Yim, Hyung-jun - 2008
 Recent Trackbacks
guenstig uebernacht..
guenstig uebernacht..
billige unterkunft
billige unterkunft
preiswert hotel buc..
preiswert hotel buc..
 Archive
2010/02
2009/03
2008/12
2008/11
2008/10
 Link Site
OnOffMix
SmartPlace
강성재, Microsoft
김유철, .NETXPERT
노현종, Miracom Inc.
류한석, SoftBank
안재우, .NETXPERT
이건복, .NETXPERT
이동범, .NETXPERT
전병선, ENSOA
정용주, Miracom Inc.
황순영, Feelanet
황재선, SoftBank
 Visitor Statistics
Total : 54,261
Today : 1
Yesterday : 9
rss