반응형

UNICODE HANGUL SYLLABLES

유니코드 한글 음절들

 

44032: 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛 :44059
44060: 개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷 :44087
44088: 갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓 :44115
44116: 걔걕걖걗걘걙걚걛걜걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯 :44143
44144: 거걱걲걳건걵걶걷걸걹걺걻걼걽걾걿검겁겂것겄겅겆겇겈겉겊겋 :44171
44172: 게겍겎겏겐겑겒겓겔겕겖겗겘겙겚겛겜겝겞겟겠겡겢겣겤겥겦겧 :44199
44200: 겨격겪겫견겭겮겯결겱겲겳겴겵겶겷겸겹겺겻겼경겾겿곀곁곂곃 :44227
44228: 계곅곆곇곈곉곊곋곌곍곎곏곐곑곒곓곔곕곖곗곘곙곚곛곜곝곞곟 :44255
44256: 고곡곢곣곤곥곦곧골곩곪곫곬곭곮곯곰곱곲곳곴공곶곷곸곹곺곻 :44283
44284: 과곽곾곿관괁괂괃괄괅괆괇괈괉괊괋괌괍괎괏괐광괒괓괔괕괖괗 :44311
44312: 괘괙괚괛괜괝괞괟괠괡괢괣괤괥괦괧괨괩괪괫괬괭괮괯괰괱괲괳 :44339
44340: 괴괵괶괷괸괹괺괻괼괽괾괿굀굁굂굃굄굅굆굇굈굉굊굋굌굍굎굏 :44367
44368: 교굑굒굓굔굕굖굗굘굙굚굛굜굝굞굟굠굡굢굣굤굥굦굧굨굩굪굫 :44395
44396: 구국굮굯군굱굲굳굴굵굶굷굸굹굺굻굼굽굾굿궀궁궂궃궄궅궆궇 :44423
44424: 궈궉궊궋권궍궎궏궐궑궒궓궔궕궖궗궘궙궚궛궜궝궞궟궠궡궢궣 :44451
44452: 궤궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궷궸궹궺궻궼궽궾궿 :44479
44480: 귀귁귂귃귄귅귆귇귈귉귊귋귌귍귎귏귐귑귒귓귔귕귖귗귘귙귚귛 :44507
44508: 규귝귞귟균귡귢귣귤귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷 :44535
44536: 그극귺귻근귽귾귿글긁긂긃긄긅긆긇금급긊긋긌긍긎긏긐긑긒긓 :44563
44564: 긔긕긖긗긘긙긚긛긜긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯 :44591
44592: 기긱긲긳긴긵긶긷길긹긺긻긼긽긾긿김깁깂깃깄깅깆깇깈깉깊깋 :44619
44620: 까깍깎깏깐깑깒깓깔깕깖깗깘깙깚깛깜깝깞깟깠깡깢깣깤깥깦깧 :44647
44648: 깨깩깪깫깬깭깮깯깰깱깲깳깴깵깶깷깸깹깺깻깼깽깾깿꺀꺁꺂꺃 :44675
44676: 꺄꺅꺆꺇꺈꺉꺊꺋꺌꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟 :44703
44704: 꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻 :44731
44732: 꺼꺽꺾꺿껀껁껂껃껄껅껆껇껈껉껊껋껌껍껎껏껐껑껒껓껔껕껖껗 :44759
44760: 께껙껚껛껜껝껞껟껠껡껢껣껤껥껦껧껨껩껪껫껬껭껮껯껰껱껲껳 :44787
44788: 껴껵껶껷껸껹껺껻껼껽껾껿꼀꼁꼂꼃꼄꼅꼆꼇꼈꼉꼊꼋꼌꼍꼎꼏 :44815
44816: 꼐꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣꼤꼥꼦꼧꼨꼩꼪꼫 :44843
44844: 꼬꼭꼮꼯꼰꼱꼲꼳꼴꼵꼶꼷꼸꼹꼺꼻꼼꼽꼾꼿꽀꽁꽂꽃꽄꽅꽆꽇 :44871
44872: 꽈꽉꽊꽋꽌꽍꽎꽏꽐꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽜꽝꽞꽟꽠꽡꽢꽣 :44899
44900: 꽤꽥꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽹꽺꽻꽼꽽꽾꽿 :44927
44928: 꾀꾁꾂꾃꾄꾅꾆꾇꾈꾉꾊꾋꾌꾍꾎꾏꾐꾑꾒꾓꾔꾕꾖꾗꾘꾙꾚꾛 :44955
44956: 꾜꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷 :44983
44984: 꾸꾹꾺꾻꾼꾽꾾꾿꿀꿁꿂꿃꿄꿅꿆꿇꿈꿉꿊꿋꿌꿍꿎꿏꿐꿑꿒꿓 :45011
45012: 꿔꿕꿖꿗꿘꿙꿚꿛꿜꿝꿞꿟꿠꿡꿢꿣꿤꿥꿦꿧꿨꿩꿪꿫꿬꿭꿮꿯 :45039
45040: 꿰꿱꿲꿳꿴꿵꿶꿷꿸꿹꿺꿻꿼꿽꿾꿿뀀뀁뀂뀃뀄뀅뀆뀇뀈뀉뀊뀋 :45067
45068: 뀌뀍뀎뀏뀐뀑뀒뀓뀔뀕뀖뀗뀘뀙뀚뀛뀜뀝뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧 :45095
45096: 뀨뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃 :45123
45124: 끄끅끆끇끈끉끊끋끌끍끎끏끐끑끒끓끔끕끖끗끘끙끚끛끜끝끞끟 :45151
45152: 끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻 :45179
45180: 끼끽끾끿낀낁낂낃낄낅낆낇낈낉낊낋낌낍낎낏낐낑낒낓낔낕낖낗 :45207
45208: 나낙낚낛난낝낞낟날낡낢낣낤낥낦낧남납낪낫났낭낮낯낰낱낲낳 :45235
45236: 내낵낶낷낸낹낺낻낼낽낾낿냀냁냂냃냄냅냆냇냈냉냊냋냌냍냎냏 :45263
45264: 냐냑냒냓냔냕냖냗냘냙냚냛냜냝냞냟냠냡냢냣냤냥냦냧냨냩냪냫 :45291
45292: 냬냭냮냯냰냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇 :45319
45320: 너넉넊넋넌넍넎넏널넑넒넓넔넕넖넗넘넙넚넛넜넝넞넟넠넡넢넣 :45347
45348: 네넥넦넧넨넩넪넫넬넭넮넯넰넱넲넳넴넵넶넷넸넹넺넻넼넽넾넿 :45375
45376: 녀녁녂녃년녅녆녇녈녉녊녋녌녍녎녏념녑녒녓녔녕녖녗녘녙녚녛 :45403
45404: 녜녝녞녟녠녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷 :45431
45432: 노녹녺녻논녽녾녿놀놁놂놃놄놅놆놇놈놉놊놋놌농놎놏놐놑높놓 :45459
45460: 놔놕놖놗놘놙놚놛놜놝놞놟놠놡놢놣놤놥놦놧놨놩놪놫놬놭놮놯 :45487
45488: 놰놱놲놳놴놵놶놷놸놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋 :45515
45516: 뇌뇍뇎뇏뇐뇑뇒뇓뇔뇕뇖뇗뇘뇙뇚뇛뇜뇝뇞뇟뇠뇡뇢뇣뇤뇥뇦뇧 :45543
45544: 뇨뇩뇪뇫뇬뇭뇮뇯뇰뇱뇲뇳뇴뇵뇶뇷뇸뇹뇺뇻뇼뇽뇾뇿눀눁눂눃 :45571
45572: 누눅눆눇눈눉눊눋눌눍눎눏눐눑눒눓눔눕눖눗눘눙눚눛눜눝눞눟 :45599
45600: 눠눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻 :45627
45628: 눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗 :45655
45656: 뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳 :45683
45684: 뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄늅늆늇늈늉늊늋늌늍늎늏 :45711
45712: 느늑늒늓는늕늖늗늘늙늚늛늜늝늞늟늠늡늢늣늤능늦늧늨늩늪늫 :45739
45740: 늬늭늮늯늰늱늲늳늴늵늶늷늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇 :45767
45768: 니닉닊닋닌닍닎닏닐닑닒닓닔닕닖닗님닙닚닛닜닝닞닟닠닡닢닣 :45795
45796: 다닥닦닧단닩닪닫달닭닮닯닰닱닲닳담답닶닷닸당닺닻닼닽닾닿 :45823
45824: 대댁댂댃댄댅댆댇댈댉댊댋댌댍댎댏댐댑댒댓댔댕댖댗댘댙댚댛 :45851
45852: 댜댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷 :45879
45880: 댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓 :45907
45908: 더덕덖덗던덙덚덛덜덝덞덟덠덡덢덣덤덥덦덧덨덩덪덫덬덭덮덯 :45935
45936: 데덱덲덳덴덵덶덷델덹덺덻덼덽덾덿뎀뎁뎂뎃뎄뎅뎆뎇뎈뎉뎊뎋 :45963
45964: 뎌뎍뎎뎏뎐뎑뎒뎓뎔뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎠뎡뎢뎣뎤뎥뎦뎧 :45991
45992: 뎨뎩뎪뎫뎬뎭뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃 :46019
46020: 도독돆돇돈돉돊돋돌돍돎돏돐돑돒돓돔돕돖돗돘동돚돛돜돝돞돟 :46047
46048: 돠돡돢돣돤돥돦돧돨돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻 :46075
46076: 돼돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됐됑됒됓됔됕됖됗 :46103
46104: 되됙됚됛된됝됞됟될됡됢됣됤됥됦됧됨됩됪됫됬됭됮됯됰됱됲됳 :46131
46132: 됴됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄둅둆둇둈둉둊둋둌둍둎둏 :46159
46160: 두둑둒둓둔둕둖둗둘둙둚둛둜둝둞둟둠둡둢둣둤둥둦둧둨둩둪둫 :46187
46188: 둬둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒀뒁뒂뒃뒄뒅뒆뒇 :46215
46216: 뒈뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒝뒞뒟뒠뒡뒢뒣 :46243
46244: 뒤뒥뒦뒧뒨뒩뒪뒫뒬뒭뒮뒯뒰뒱뒲뒳뒴뒵뒶뒷뒸뒹뒺뒻뒼뒽뒾뒿 :46271
46272: 듀듁듂듃듄듅듆듇듈듉듊듋듌듍듎듏듐듑듒듓듔듕듖듗듘듙듚듛 :46299
46300: 드득듞듟든듡듢듣들듥듦듧듨듩듪듫듬듭듮듯듰등듲듳듴듵듶듷 :46327
46328: 듸듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓 :46355
46356: 디딕딖딗딘딙딚딛딜딝딞딟딠딡딢딣딤딥딦딧딨딩딪딫딬딭딮딯 :46383
46384: 따딱딲딳딴딵딶딷딸딹딺딻딼딽딾딿땀땁땂땃땄땅땆땇땈땉땊땋 :46411
46412: 때땍땎땏땐땑땒땓땔땕땖땗땘땙땚땛땜땝땞땟땠땡땢땣땤땥땦땧 :46439
46440: 땨땩땪땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃 :46467
46468: 떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟 :46495
46496: 떠떡떢떣떤떥떦떧떨떩떪떫떬떭떮떯떰떱떲떳떴떵떶떷떸떹떺떻 :46523
46524: 떼떽떾떿뗀뗁뗂뗃뗄뗅뗆뗇뗈뗉뗊뗋뗌뗍뗎뗏뗐뗑뗒뗓뗔뗕뗖뗗 :46551
46552: 뗘뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗬뗭뗮뗯뗰뗱뗲뗳 :46579
46580: 뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏 :46607
46608: 또똑똒똓똔똕똖똗똘똙똚똛똜똝똞똟똠똡똢똣똤똥똦똧똨똩똪똫 :46635
46636: 똬똭똮똯똰똱똲똳똴똵똶똷똸똹똺똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇 :46663
46664: 뙈뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣 :46691
46692: 뙤뙥뙦뙧뙨뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿 :46719
46720: 뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛 :46747
46748: 뚜뚝뚞뚟뚠뚡뚢뚣뚤뚥뚦뚧뚨뚩뚪뚫뚬뚭뚮뚯뚰뚱뚲뚳뚴뚵뚶뚷 :46775
46776: 뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓 :46803
46804: 뛔뛕뛖뛗뛘뛙뛚뛛뛜뛝뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯 :46831
46832: 뛰뛱뛲뛳뛴뛵뛶뛷뛸뛹뛺뛻뛼뛽뛾뛿뜀뜁뜂뜃뜄뜅뜆뜇뜈뜉뜊뜋 :46859
46860: 뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧 :46887
46888: 뜨뜩뜪뜫뜬뜭뜮뜯뜰뜱뜲뜳뜴뜵뜶뜷뜸뜹뜺뜻뜼뜽뜾뜿띀띁띂띃 :46915
46916: 띄띅띆띇띈띉띊띋띌띍띎띏띐띑띒띓띔띕띖띗띘띙띚띛띜띝띞띟 :46943
46944: 띠띡띢띣띤띥띦띧띨띩띪띫띬띭띮띯띰띱띲띳띴띵띶띷띸띹띺띻 :46971
46972: 라락띾띿란랁랂랃랄랅랆랇랈랉랊랋람랍랎랏랐랑랒랓랔랕랖랗 :46999
47000: 래랙랚랛랜랝랞랟랠랡랢랣랤랥랦랧램랩랪랫랬랭랮랯랰랱랲랳 :47027
47028: 랴략랶랷랸랹랺랻랼랽랾랿럀럁럂럃럄럅럆럇럈량럊럋럌럍럎럏 :47055
47056: 럐럑럒럓럔럕럖럗럘럙럚럛럜럝럞럟럠럡럢럣럤럥럦럧럨럩럪럫 :47083
47084: 러럭럮럯런럱럲럳럴럵럶럷럸럹럺럻럼럽럾럿렀렁렂렃렄렅렆렇 :47111
47112: 레렉렊렋렌렍렎렏렐렑렒렓렔렕렖렗렘렙렚렛렜렝렞렟렠렡렢렣 :47139
47140: 려력렦렧련렩렪렫렬렭렮렯렰렱렲렳렴렵렶렷렸령렺렻렼렽렾렿 :47167
47168: 례롁롂롃롄롅롆롇롈롉롊롋롌롍롎롏롐롑롒롓롔롕롖롗롘롙롚롛 :47195
47196: 로록롞롟론롡롢롣롤롥롦롧롨롩롪롫롬롭롮롯롰롱롲롳롴롵롶롷 :47223
47224: 롸롹롺롻롼롽롾롿뢀뢁뢂뢃뢄뢅뢆뢇뢈뢉뢊뢋뢌뢍뢎뢏뢐뢑뢒뢓 :47251
47252: 뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟뢠뢡뢢뢣뢤뢥뢦뢧뢨뢩뢪뢫뢬뢭뢮뢯 :47279
47280: 뢰뢱뢲뢳뢴뢵뢶뢷뢸뢹뢺뢻뢼뢽뢾뢿룀룁룂룃룄룅룆룇룈룉룊룋 :47307
47308: 료룍룎룏룐룑룒룓룔룕룖룗룘룙룚룛룜룝룞룟룠룡룢룣룤룥룦룧 :47335
47336: 루룩룪룫룬룭룮룯룰룱룲룳룴룵룶룷룸룹룺룻룼룽룾룿뤀뤁뤂뤃 :47363
47364: 뤄뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤘뤙뤚뤛뤜뤝뤞뤟 :47391
47392: 뤠뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻 :47419
47420: 뤼뤽뤾뤿륀륁륂륃륄륅륆륇륈륉륊륋륌륍륎륏륐륑륒륓륔륕륖륗 :47447
47448: 류륙륚륛륜륝륞륟률륡륢륣륤륥륦륧륨륩륪륫륬륭륮륯륰륱륲륳 :47475
47476: 르륵륶륷른륹륺륻를륽륾륿릀릁릂릃름릅릆릇릈릉릊릋릌릍릎릏 :47503
47504: 릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞릟릠릡릢릣릤릥릦릧릨릩릪릫 :47531
47532: 리릭릮릯린릱릲릳릴릵릶릷릸릹릺릻림립릾릿맀링맂맃맄맅맆맇 :47559
47560: 마막맊맋만맍많맏말맑맒맓맔맕맖맗맘맙맚맛맜망맞맟맠맡맢맣 :47587
47588: 매맥맦맧맨맩맪맫맬맭맮맯맰맱맲맳맴맵맶맷맸맹맺맻맼맽맾맿 :47615
47616: 먀먁먂먃먄먅먆먇먈먉먊먋먌먍먎먏먐먑먒먓먔먕먖먗먘먙먚먛 :47643
47644: 먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷 :47671
47672: 머먹먺먻먼먽먾먿멀멁멂멃멄멅멆멇멈멉멊멋멌멍멎멏멐멑멒멓 :47699
47700: 메멕멖멗멘멙멚멛멜멝멞멟멠멡멢멣멤멥멦멧멨멩멪멫멬멭멮멯 :47727
47728: 며멱멲멳면멵멶멷멸멹멺멻멼멽멾멿몀몁몂몃몄명몆몇몈몉몊몋 :47755
47756: 몌몍몎몏몐몑몒몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧 :47783
47784: 모목몪몫몬몭몮몯몰몱몲몳몴몵몶몷몸몹몺못몼몽몾몿뫀뫁뫂뫃 :47811
47812: 뫄뫅뫆뫇뫈뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫘뫙뫚뫛뫜뫝뫞뫟 :47839
47840: 뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻 :47867
47868: 뫼뫽뫾뫿묀묁묂묃묄묅묆묇묈묉묊묋묌묍묎묏묐묑묒묓묔묕묖묗 :47895
47896: 묘묙묚묛묜묝묞묟묠묡묢묣묤묥묦묧묨묩묪묫묬묭묮묯묰묱묲묳 :47923
47924: 무묵묶묷문묹묺묻물묽묾묿뭀뭁뭂뭃뭄뭅뭆뭇뭈뭉뭊뭋뭌뭍뭎뭏 :47951
47952: 뭐뭑뭒뭓뭔뭕뭖뭗뭘뭙뭚뭛뭜뭝뭞뭟뭠뭡뭢뭣뭤뭥뭦뭧뭨뭩뭪뭫 :47979
47980: 뭬뭭뭮뭯뭰뭱뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇 :48007
48008: 뮈뮉뮊뮋뮌뮍뮎뮏뮐뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣 :48035
48036: 뮤뮥뮦뮧뮨뮩뮪뮫뮬뮭뮮뮯뮰뮱뮲뮳뮴뮵뮶뮷뮸뮹뮺뮻뮼뮽뮾뮿 :48063
48064: 므믁믂믃믄믅믆믇믈믉믊믋믌믍믎믏믐믑믒믓믔믕믖믗믘믙믚믛 :48091
48092: 믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷 :48119
48120: 미믹믺믻민믽믾믿밀밁밂밃밄밅밆밇밈밉밊밋밌밍밎및밐밑밒밓 :48147
48148: 바박밖밗반밙밚받발밝밞밟밠밡밢밣밤밥밦밧밨방밪밫밬밭밮밯 :48175
48176: 배백밲밳밴밵밶밷밸밹밺밻밼밽밾밿뱀뱁뱂뱃뱄뱅뱆뱇뱈뱉뱊뱋 :48203
48204: 뱌뱍뱎뱏뱐뱑뱒뱓뱔뱕뱖뱗뱘뱙뱚뱛뱜뱝뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧 :48231
48232: 뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃 :48259
48260: 버벅벆벇번벉벊벋벌벍벎벏벐벑벒벓범법벖벗벘벙벚벛벜벝벞벟 :48287
48288: 베벡벢벣벤벥벦벧벨벩벪벫벬벭벮벯벰벱벲벳벴벵벶벷벸벹벺벻 :48315
48316: 벼벽벾벿변볁볂볃별볅볆볇볈볉볊볋볌볍볎볏볐병볒볓볔볕볖볗 :48343
48344: 볘볙볚볛볜볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳 :48371
48372: 보복볶볷본볹볺볻볼볽볾볿봀봁봂봃봄봅봆봇봈봉봊봋봌봍봎봏 :48399
48400: 봐봑봒봓봔봕봖봗봘봙봚봛봜봝봞봟봠봡봢봣봤봥봦봧봨봩봪봫 :48427
48428: 봬봭봮봯봰봱봲봳봴봵봶봷봸봹봺봻봼봽봾봿뵀뵁뵂뵃뵄뵅뵆뵇 :48455
48456: 뵈뵉뵊뵋뵌뵍뵎뵏뵐뵑뵒뵓뵔뵕뵖뵗뵘뵙뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣 :48483
48484: 뵤뵥뵦뵧뵨뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿 :48511
48512: 부북붂붃분붅붆붇불붉붊붋붌붍붎붏붐붑붒붓붔붕붖붗붘붙붚붛 :48539
48540: 붜붝붞붟붠붡붢붣붤붥붦붧붨붩붪붫붬붭붮붯붰붱붲붳붴붵붶붷 :48567
48568: 붸붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑뷒뷓 :48595
48596: 뷔뷕뷖뷗뷘뷙뷚뷛뷜뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷩뷪뷫뷬뷭뷮뷯 :48623
48624: 뷰뷱뷲뷳뷴뷵뷶뷷뷸뷹뷺뷻뷼뷽뷾뷿븀븁븂븃븄븅븆븇븈븉븊븋 :48651
48652: 브븍븎븏븐븑븒븓블븕븖븗븘븙븚븛븜븝븞븟븠븡븢븣븤븥븦븧 :48679
48680: 븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃 :48707
48708: 비빅빆빇빈빉빊빋빌빍빎빏빐빑빒빓빔빕빖빗빘빙빚빛빜빝빞빟 :48735
48736: 빠빡빢빣빤빥빦빧빨빩빪빫빬빭빮빯빰빱빲빳빴빵빶빷빸빹빺빻 :48763
48764: 빼빽빾빿뺀뺁뺂뺃뺄뺅뺆뺇뺈뺉뺊뺋뺌뺍뺎뺏뺐뺑뺒뺓뺔뺕뺖뺗 :48791
48792: 뺘뺙뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺨뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳 :48819
48820: 뺴뺵뺶뺷뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏 :48847
48848: 뻐뻑뻒뻓뻔뻕뻖뻗뻘뻙뻚뻛뻜뻝뻞뻟뻠뻡뻢뻣뻤뻥뻦뻧뻨뻩뻪뻫 :48875
48876: 뻬뻭뻮뻯뻰뻱뻲뻳뻴뻵뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼁뼂뼃뼄뼅뼆뼇 :48903
48904: 뼈뼉뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼘뼙뼚뼛뼜뼝뼞뼟뼠뼡뼢뼣 :48931
48932: 뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿 :48959
48960: 뽀뽁뽂뽃뽄뽅뽆뽇뽈뽉뽊뽋뽌뽍뽎뽏뽐뽑뽒뽓뽔뽕뽖뽗뽘뽙뽚뽛 :48987
48988: 뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷 :49015
49016: 뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓 :49043
49044: 뾔뾕뾖뾗뾘뾙뾚뾛뾜뾝뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯 :49071
49072: 뾰뾱뾲뾳뾴뾵뾶뾷뾸뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿅뿆뿇뿈뿉뿊뿋 :49099
49100: 뿌뿍뿎뿏뿐뿑뿒뿓뿔뿕뿖뿗뿘뿙뿚뿛뿜뿝뿞뿟뿠뿡뿢뿣뿤뿥뿦뿧 :49127
49128: 뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃 :49155
49156: 쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟 :49183
49184: 쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻 :49211
49212: 쀼쀽쀾쀿쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁑쁒쁓쁔쁕쁖쁗 :49239
49240: 쁘쁙쁚쁛쁜쁝쁞쁟쁠쁡쁢쁣쁤쁥쁦쁧쁨쁩쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳 :49267
49268: 쁴쁵쁶쁷쁸쁹쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏 :49295
49296: 삐삑삒삓삔삕삖삗삘삙삚삛삜삝삞삟삠삡삢삣삤삥삦삧삨삩삪삫 :49323
49324: 사삭삮삯산삱삲삳살삵삶삷삸삹삺삻삼삽삾삿샀상샂샃샄샅샆샇 :49351
49352: 새색샊샋샌샍샎샏샐샑샒샓샔샕샖샗샘샙샚샛샜생샞샟샠샡샢샣 :49379
49380: 샤샥샦샧샨샩샪샫샬샭샮샯샰샱샲샳샴샵샶샷샸샹샺샻샼샽샾샿 :49407
49408: 섀섁섂섃섄섅섆섇섈섉섊섋섌섍섎섏섐섑섒섓섔섕섖섗섘섙섚섛 :49435
49436: 서석섞섟선섡섢섣설섥섦섧섨섩섪섫섬섭섮섯섰성섲섳섴섵섶섷 :49463
49464: 세섹섺섻센섽섾섿셀셁셂셃셄셅셆셇셈셉셊셋셌셍셎셏셐셑셒셓 :49491
49492: 셔셕셖셗션셙셚셛셜셝셞셟셠셡셢셣셤셥셦셧셨셩셪셫셬셭셮셯 :49519
49520: 셰셱셲셳셴셵셶셷셸셹셺셻셼셽셾셿솀솁솂솃솄솅솆솇솈솉솊솋 :49547
49548: 소속솎솏손솑솒솓솔솕솖솗솘솙솚솛솜솝솞솟솠송솢솣솤솥솦솧 :49575
49576: 솨솩솪솫솬솭솮솯솰솱솲솳솴솵솶솷솸솹솺솻솼솽솾솿쇀쇁쇂쇃 :49603
49604: 쇄쇅쇆쇇쇈쇉쇊쇋쇌쇍쇎쇏쇐쇑쇒쇓쇔쇕쇖쇗쇘쇙쇚쇛쇜쇝쇞쇟 :49631
49632: 쇠쇡쇢쇣쇤쇥쇦쇧쇨쇩쇪쇫쇬쇭쇮쇯쇰쇱쇲쇳쇴쇵쇶쇷쇸쇹쇺쇻 :49659
49660: 쇼쇽쇾쇿숀숁숂숃숄숅숆숇숈숉숊숋숌숍숎숏숐숑숒숓숔숕숖숗 :49687
49688: 수숙숚숛순숝숞숟술숡숢숣숤숥숦숧숨숩숪숫숬숭숮숯숰숱숲숳 :49715
49716: 숴숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅쉆쉇쉈쉉쉊쉋쉌쉍쉎쉏 :49743
49744: 쉐쉑쉒쉓쉔쉕쉖쉗쉘쉙쉚쉛쉜쉝쉞쉟쉠쉡쉢쉣쉤쉥쉦쉧쉨쉩쉪쉫 :49771
49772: 쉬쉭쉮쉯쉰쉱쉲쉳쉴쉵쉶쉷쉸쉹쉺쉻쉼쉽쉾쉿슀슁슂슃슄슅슆슇 :49799
49800: 슈슉슊슋슌슍슎슏슐슑슒슓슔슕슖슗슘슙슚슛슜슝슞슟슠슡슢슣 :49827
49828: 스슥슦슧슨슩슪슫슬슭슮슯슰슱슲슳슴습슶슷슸승슺슻슼슽슾슿 :49855
49856: 싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛 :49883
49884: 시식싞싟신싡싢싣실싥싦싧싨싩싪싫심십싮싯싰싱싲싳싴싵싶싷 :49911
49912: 싸싹싺싻싼싽싾싿쌀쌁쌂쌃쌄쌅쌆쌇쌈쌉쌊쌋쌌쌍쌎쌏쌐쌑쌒쌓 :49939
49940: 쌔쌕쌖쌗쌘쌙쌚쌛쌜쌝쌞쌟쌠쌡쌢쌣쌤쌥쌦쌧쌨쌩쌪쌫쌬쌭쌮쌯 :49967
49968: 쌰쌱쌲쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썅썆썇썈썉썊썋 :49995
49996: 썌썍썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧 :50023
50024: 써썩썪썫썬썭썮썯썰썱썲썳썴썵썶썷썸썹썺썻썼썽썾썿쎀쎁쎂쎃 :50051
50052: 쎄쎅쎆쎇쎈쎉쎊쎋쎌쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟 :50079
50080: 쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻 :50107
50108: 쎼쎽쎾쎿쏀쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗 :50135
50136: 쏘쏙쏚쏛쏜쏝쏞쏟쏠쏡쏢쏣쏤쏥쏦쏧쏨쏩쏪쏫쏬쏭쏮쏯쏰쏱쏲쏳 :50163
50164: 쏴쏵쏶쏷쏸쏹쏺쏻쏼쏽쏾쏿쐀쐁쐂쐃쐄쐅쐆쐇쐈쐉쐊쐋쐌쐍쐎쐏 :50191
50192: 쐐쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚쐛쐜쐝쐞쐟쐠쐡쐢쐣쐤쐥쐦쐧쐨쐩쐪쐫 :50219
50220: 쐬쐭쐮쐯쐰쐱쐲쐳쐴쐵쐶쐷쐸쐹쐺쐻쐼쐽쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇 :50247
50248: 쑈쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣 :50275
50276: 쑤쑥쑦쑧쑨쑩쑪쑫쑬쑭쑮쑯쑰쑱쑲쑳쑴쑵쑶쑷쑸쑹쑺쑻쑼쑽쑾쑿 :50303
50304: 쒀쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒔쒕쒖쒗쒘쒙쒚쒛 :50331
50332: 쒜쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷 :50359
50360: 쒸쒹쒺쒻쒼쒽쒾쒿쓀쓁쓂쓃쓄쓅쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓 :50387
50388: 쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟쓠쓡쓢쓣쓤쓥쓦쓧쓨쓩쓪쓫쓬쓭쓮쓯 :50415
50416: 쓰쓱쓲쓳쓴쓵쓶쓷쓸쓹쓺쓻쓼쓽쓾쓿씀씁씂씃씄씅씆씇씈씉씊씋 :50443
50444: 씌씍씎씏씐씑씒씓씔씕씖씗씘씙씚씛씜씝씞씟씠씡씢씣씤씥씦씧 :50471
50472: 씨씩씪씫씬씭씮씯씰씱씲씳씴씵씶씷씸씹씺씻씼씽씾씿앀앁앂앃 :50499
50500: 아악앆앇안앉않앋알앍앎앏앐앑앒앓암압앖앗았앙앚앛앜앝앞앟 :50527
50528: 애액앢앣앤앥앦앧앨앩앪앫앬앭앮앯앰앱앲앳앴앵앶앷앸앹앺앻 :50555
50556: 야약앾앿얀얁얂얃얄얅얆얇얈얉얊얋얌얍얎얏얐양얒얓얔얕얖얗 :50583
50584: 얘얙얚얛얜얝얞얟얠얡얢얣얤얥얦얧얨얩얪얫얬얭얮얯얰얱얲얳 :50611
50612: 어억얶얷언얹얺얻얼얽얾얿엀엁엂엃엄업없엇었엉엊엋엌엍엎엏 :50639
50640: 에엑엒엓엔엕엖엗엘엙엚엛엜엝엞엟엠엡엢엣엤엥엦엧엨엩엪엫 :50667
50668: 여역엮엯연엱엲엳열엵엶엷엸엹엺엻염엽엾엿였영옂옃옄옅옆옇 :50695
50696: 예옉옊옋옌옍옎옏옐옑옒옓옔옕옖옗옘옙옚옛옜옝옞옟옠옡옢옣 :50723
50724: 오옥옦옧온옩옪옫올옭옮옯옰옱옲옳옴옵옶옷옸옹옺옻옼옽옾옿 :50751
50752: 와왁왂왃완왅왆왇왈왉왊왋왌왍왎왏왐왑왒왓왔왕왖왗왘왙왚왛 :50779
50780: 왜왝왞왟왠왡왢왣왤왥왦왧왨왩왪왫왬왭왮왯왰왱왲왳왴왵왶왷 :50807
50808: 외왹왺왻왼왽왾왿욀욁욂욃욄욅욆욇욈욉욊욋욌욍욎욏욐욑욒욓 :50835
50836: 요욕욖욗욘욙욚욛욜욝욞욟욠욡욢욣욤욥욦욧욨용욪욫욬욭욮욯 :50863
50864: 우욱욲욳운욵욶욷울욹욺욻욼욽욾욿움웁웂웃웄웅웆웇웈웉웊웋 :50891
50892: 워웍웎웏원웑웒웓월웕웖웗웘웙웚웛웜웝웞웟웠웡웢웣웤웥웦웧 :50919
50920: 웨웩웪웫웬웭웮웯웰웱웲웳웴웵웶웷웸웹웺웻웼웽웾웿윀윁윂윃 :50947
50948: 위윅윆윇윈윉윊윋윌윍윎윏윐윑윒윓윔윕윖윗윘윙윚윛윜윝윞윟 :50975
50976: 유육윢윣윤윥윦윧율윩윪윫윬윭윮윯윰윱윲윳윴융윶윷윸윹윺윻 :51003
51004: 으윽윾윿은읁읂읃을읅읆읇읈읉읊읋음읍읎읏읐응읒읓읔읕읖읗 :51031
51032: 의읙읚읛읜읝읞읟읠읡읢읣읤읥읦읧읨읩읪읫읬읭읮읯읰읱읲읳 :51059
51060: 이익읶읷인읹읺읻일읽읾읿잀잁잂잃임입잆잇있잉잊잋잌잍잎잏 :51087
51088: 자작잒잓잔잕잖잗잘잙잚잛잜잝잞잟잠잡잢잣잤장잦잧잨잩잪잫 :51115
51116: 재잭잮잯잰잱잲잳잴잵잶잷잸잹잺잻잼잽잾잿쟀쟁쟂쟃쟄쟅쟆쟇 :51143
51144: 쟈쟉쟊쟋쟌쟍쟎쟏쟐쟑쟒쟓쟔쟕쟖쟗쟘쟙쟚쟛쟜쟝쟞쟟쟠쟡쟢쟣 :51171
51172: 쟤쟥쟦쟧쟨쟩쟪쟫쟬쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺쟻쟼쟽쟾쟿 :51199
51200: 저적젂젃전젅젆젇절젉젊젋젌젍젎젏점접젒젓젔정젖젗젘젙젚젛 :51227
51228: 제젝젞젟젠젡젢젣젤젥젦젧젨젩젪젫젬젭젮젯젰젱젲젳젴젵젶젷 :51255
51256: 져젹젺젻젼젽젾젿졀졁졂졃졄졅졆졇졈졉졊졋졌졍졎졏졐졑졒졓 :51283
51284: 졔졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯 :51311
51312: 조족졲졳존졵졶졷졸졹졺졻졼졽졾졿좀좁좂좃좄종좆좇좈좉좊좋 :51339
51340: 좌좍좎좏좐좑좒좓좔좕좖좗좘좙좚좛좜좝좞좟좠좡좢좣좤좥좦좧 :51367
51368: 좨좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좼좽좾좿죀죁죂죃 :51395
51396: 죄죅죆죇죈죉죊죋죌죍죎죏죐죑죒죓죔죕죖죗죘죙죚죛죜죝죞죟 :51423
51424: 죠죡죢죣죤죥죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죵죶죷죸죹죺죻 :51451
51452: 주죽죾죿준줁줂줃줄줅줆줇줈줉줊줋줌줍줎줏줐중줒줓줔줕줖줗 :51479
51480: 줘줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫줬줭줮줯줰줱줲줳 :51507
51508: 줴줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇쥈쥉쥊쥋쥌쥍쥎쥏 :51535
51536: 쥐쥑쥒쥓쥔쥕쥖쥗쥘쥙쥚쥛쥜쥝쥞쥟쥠쥡쥢쥣쥤쥥쥦쥧쥨쥩쥪쥫 :51563
51564: 쥬쥭쥮쥯쥰쥱쥲쥳쥴쥵쥶쥷쥸쥹쥺쥻쥼쥽쥾쥿즀즁즂즃즄즅즆즇 :51591
51592: 즈즉즊즋즌즍즎즏즐즑즒즓즔즕즖즗즘즙즚즛즜증즞즟즠즡즢즣 :51619
51620: 즤즥즦즧즨즩즪즫즬즭즮즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿 :51647
51648: 지직짂짃진짅짆짇질짉짊짋짌짍짎짏짐집짒짓짔징짖짗짘짙짚짛 :51675
51676: 짜짝짞짟짠짡짢짣짤짥짦짧짨짩짪짫짬짭짮짯짰짱짲짳짴짵짶짷 :51703
51704: 째짹짺짻짼짽짾짿쨀쨁쨂쨃쨄쨅쨆쨇쨈쨉쨊쨋쨌쨍쨎쨏쨐쨑쨒쨓 :51731
51732: 쨔쨕쨖쨗쨘쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥쨦쨧쨨쨩쨪쨫쨬쨭쨮쨯 :51759
51760: 쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆쩇쩈쩉쩊쩋 :51787
51788: 쩌쩍쩎쩏쩐쩑쩒쩓쩔쩕쩖쩗쩘쩙쩚쩛쩜쩝쩞쩟쩠쩡쩢쩣쩤쩥쩦쩧 :51815
51816: 쩨쩩쩪쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩽쩾쩿쪀쪁쪂쪃 :51843
51844: 쪄쪅쪆쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪘쪙쪚쪛쪜쪝쪞쪟 :51871
51872: 쪠쪡쪢쪣쪤쪥쪦쪧쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻 :51899
51900: 쪼쪽쪾쪿쫀쫁쫂쫃쫄쫅쫆쫇쫈쫉쫊쫋쫌쫍쫎쫏쫐쫑쫒쫓쫔쫕쫖쫗 :51927
51928: 쫘쫙쫚쫛쫜쫝쫞쫟쫠쫡쫢쫣쫤쫥쫦쫧쫨쫩쫪쫫쫬쫭쫮쫯쫰쫱쫲쫳 :51955
51956: 쫴쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬈쬉쬊쬋쬌쬍쬎쬏 :51983
51984: 쬐쬑쬒쬓쬔쬕쬖쬗쬘쬙쬚쬛쬜쬝쬞쬟쬠쬡쬢쬣쬤쬥쬦쬧쬨쬩쬪쬫 :52011
52012: 쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭁쭂쭃쭄쭅쭆쭇 :52039
52040: 쭈쭉쭊쭋쭌쭍쭎쭏쭐쭑쭒쭓쭔쭕쭖쭗쭘쭙쭚쭛쭜쭝쭞쭟쭠쭡쭢쭣 :52067
52068: 쭤쭥쭦쭧쭨쭩쭪쭫쭬쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭸쭹쭺쭻쭼쭽쭾쭿 :52095
52096: 쮀쮁쮂쮃쮄쮅쮆쮇쮈쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛 :52123
52124: 쮜쮝쮞쮟쮠쮡쮢쮣쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷 :52151
52152: 쮸쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓 :52179
52180: 쯔쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟쯠쯡쯢쯣쯤쯥쯦쯧쯨쯩쯪쯫쯬쯭쯮쯯 :52207
52208: 쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋 :52235
52236: 찌찍찎찏찐찑찒찓찔찕찖찗찘찙찚찛찜찝찞찟찠찡찢찣찤찥찦찧 :52263
52264: 차착찪찫찬찭찮찯찰찱찲찳찴찵찶찷참찹찺찻찼창찾찿챀챁챂챃 :52291
52292: 채책챆챇챈챉챊챋챌챍챎챏챐챑챒챓챔챕챖챗챘챙챚챛챜챝챞챟 :52319
52320: 챠챡챢챣챤챥챦챧챨챩챪챫챬챭챮챯챰챱챲챳챴챵챶챷챸챹챺챻 :52347
52348: 챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓첔첕첖첗 :52375
52376: 처척첚첛천첝첞첟철첡첢첣첤첥첦첧첨첩첪첫첬청첮첯첰첱첲첳 :52403
52404: 체첵첶첷첸첹첺첻첼첽첾첿쳀쳁쳂쳃쳄쳅쳆쳇쳈쳉쳊쳋쳌쳍쳎쳏 :52431
52432: 쳐쳑쳒쳓쳔쳕쳖쳗쳘쳙쳚쳛쳜쳝쳞쳟쳠쳡쳢쳣쳤쳥쳦쳧쳨쳩쳪쳫 :52459
52460: 쳬쳭쳮쳯쳰쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽쳾쳿촀촁촂촃촄촅촆촇 :52487
52488: 초촉촊촋촌촍촎촏촐촑촒촓촔촕촖촗촘촙촚촛촜총촞촟촠촡촢촣 :52515
52516: 촤촥촦촧촨촩촪촫촬촭촮촯촰촱촲촳촴촵촶촷촸촹촺촻촼촽촾촿 :52543
52544: 쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛 :52571
52572: 최쵝쵞쵟쵠쵡쵢쵣쵤쵥쵦쵧쵨쵩쵪쵫쵬쵭쵮쵯쵰쵱쵲쵳쵴쵵쵶쵷 :52599
52600: 쵸쵹쵺쵻쵼쵽쵾쵿춀춁춂춃춄춅춆춇춈춉춊춋춌춍춎춏춐춑춒춓 :52627
52628: 추축춖춗춘춙춚춛출춝춞춟춠춡춢춣춤춥춦춧춨충춪춫춬춭춮춯 :52655
52656: 춰춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췄췅췆췇췈췉췊췋 :52683
52684: 췌췍췎췏췐췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡췢췣췤췥췦췧 :52711
52712: 취췩췪췫췬췭췮췯췰췱췲췳췴췵췶췷췸췹췺췻췼췽췾췿츀츁츂츃 :52739
52740: 츄츅츆츇츈츉츊츋츌츍츎츏츐츑츒츓츔츕츖츗츘츙츚츛츜츝츞츟 :52767
52768: 츠측츢츣츤츥츦츧츨츩츪츫츬츭츮츯츰츱츲츳츴층츶츷츸츹츺츻 :52795
52796: 츼츽츾츿칀칁칂칃칄칅칆칇칈칉칊칋칌칍칎칏칐칑칒칓칔칕칖칗 :52823
52824: 치칙칚칛친칝칞칟칠칡칢칣칤칥칦칧침칩칪칫칬칭칮칯칰칱칲칳 :52851
52852: 카칵칶칷칸칹칺칻칼칽칾칿캀캁캂캃캄캅캆캇캈캉캊캋캌캍캎캏 :52879
52880: 캐캑캒캓캔캕캖캗캘캙캚캛캜캝캞캟캠캡캢캣캤캥캦캧캨캩캪캫 :52907
52908: 캬캭캮캯캰캱캲캳캴캵캶캷캸캹캺캻캼캽캾캿컀컁컂컃컄컅컆컇 :52935
52936: 컈컉컊컋컌컍컎컏컐컑컒컓컔컕컖컗컘컙컚컛컜컝컞컟컠컡컢컣 :52963
52964: 커컥컦컧컨컩컪컫컬컭컮컯컰컱컲컳컴컵컶컷컸컹컺컻컼컽컾컿 :52991
52992: 케켁켂켃켄켅켆켇켈켉켊켋켌켍켎켏켐켑켒켓켔켕켖켗켘켙켚켛 :53019
53020: 켜켝켞켟켠켡켢켣켤켥켦켧켨켩켪켫켬켭켮켯켰켱켲켳켴켵켶켷 :53047
53048: 켸켹켺켻켼켽켾켿콀콁콂콃콄콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓 :53075
53076: 코콕콖콗콘콙콚콛콜콝콞콟콠콡콢콣콤콥콦콧콨콩콪콫콬콭콮콯 :53103
53104: 콰콱콲콳콴콵콶콷콸콹콺콻콼콽콾콿쾀쾁쾂쾃쾄쾅쾆쾇쾈쾉쾊쾋 :53131
53132: 쾌쾍쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾡쾢쾣쾤쾥쾦쾧 :53159
53160: 쾨쾩쾪쾫쾬쾭쾮쾯쾰쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃 :53187
53188: 쿄쿅쿆쿇쿈쿉쿊쿋쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟 :53215
53216: 쿠쿡쿢쿣쿤쿥쿦쿧쿨쿩쿪쿫쿬쿭쿮쿯쿰쿱쿲쿳쿴쿵쿶쿷쿸쿹쿺쿻 :53243
53244: 쿼쿽쿾쿿퀀퀁퀂퀃퀄퀅퀆퀇퀈퀉퀊퀋퀌퀍퀎퀏퀐퀑퀒퀓퀔퀕퀖퀗 :53271
53272: 퀘퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬퀭퀮퀯퀰퀱퀲퀳 :53299
53300: 퀴퀵퀶퀷퀸퀹퀺퀻퀼퀽퀾퀿큀큁큂큃큄큅큆큇큈큉큊큋큌큍큎큏 :53327
53328: 큐큑큒큓큔큕큖큗큘큙큚큛큜큝큞큟큠큡큢큣큤큥큦큧큨큩큪큫 :53355
53356: 크큭큮큯큰큱큲큳클큵큶큷큸큹큺큻큼큽큾큿킀킁킂킃킄킅킆킇 :53383
53384: 킈킉킊킋킌킍킎킏킐킑킒킓킔킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣 :53411
53412: 키킥킦킧킨킩킪킫킬킭킮킯킰킱킲킳킴킵킶킷킸킹킺킻킼킽킾킿 :53439
53440: 타탁탂탃탄탅탆탇탈탉탊탋탌탍탎탏탐탑탒탓탔탕탖탗탘탙탚탛 :53467
53468: 태택탞탟탠탡탢탣탤탥탦탧탨탩탪탫탬탭탮탯탰탱탲탳탴탵탶탷 :53495
53496: 탸탹탺탻탼탽탾탿턀턁턂턃턄턅턆턇턈턉턊턋턌턍턎턏턐턑턒턓 :53523
53524: 턔턕턖턗턘턙턚턛턜턝턞턟턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯 :53551
53552: 터턱턲턳턴턵턶턷털턹턺턻턼턽턾턿텀텁텂텃텄텅텆텇텈텉텊텋 :53579
53580: 테텍텎텏텐텑텒텓텔텕텖텗텘텙텚텛템텝텞텟텠텡텢텣텤텥텦텧 :53607
53608: 텨텩텪텫텬텭텮텯텰텱텲텳텴텵텶텷텸텹텺텻텼텽텾텿톀톁톂톃 :53635
53636: 톄톅톆톇톈톉톊톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟 :53663
53664: 토톡톢톣톤톥톦톧톨톩톪톫톬톭톮톯톰톱톲톳톴통톶톷톸톹톺톻 :53691
53692: 톼톽톾톿퇀퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏퇐퇑퇒퇓퇔퇕퇖퇗 :53719
53720: 퇘퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪퇫퇬퇭퇮퇯퇰퇱퇲퇳 :53747
53748: 퇴퇵퇶퇷퇸퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆툇툈툉툊툋툌툍툎툏 :53775
53776: 툐툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩툪툫 :53803
53804: 투툭툮툯툰툱툲툳툴툵툶툷툸툹툺툻툼툽툾툿퉀퉁퉂퉃퉄퉅퉆퉇 :53831
53832: 퉈퉉퉊퉋퉌퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉜퉝퉞퉟퉠퉡퉢퉣 :53859
53860: 퉤퉥퉦퉧퉨퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿 :53887
53888: 튀튁튂튃튄튅튆튇튈튉튊튋튌튍튎튏튐튑튒튓튔튕튖튗튘튙튚튛 :53915
53916: 튜튝튞튟튠튡튢튣튤튥튦튧튨튩튪튫튬튭튮튯튰튱튲튳튴튵튶튷 :53943
53944: 트특튺튻튼튽튾튿틀틁틂틃틄틅틆틇틈틉틊틋틌틍틎틏틐틑틒틓 :53971
53972: 틔틕틖틗틘틙틚틛틜틝틞틟틠틡틢틣틤틥틦틧틨틩틪틫틬틭틮틯 :53999
54000: 티틱틲틳틴틵틶틷틸틹틺틻틼틽틾틿팀팁팂팃팄팅팆팇팈팉팊팋 :54027
54028: 파팍팎팏판팑팒팓팔팕팖팗팘팙팚팛팜팝팞팟팠팡팢팣팤팥팦팧 :54055
54056: 패팩팪팫팬팭팮팯팰팱팲팳팴팵팶팷팸팹팺팻팼팽팾팿퍀퍁퍂퍃 :54083
54084: 퍄퍅퍆퍇퍈퍉퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟 :54111
54112: 퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻 :54139
54140: 퍼퍽퍾퍿펀펁펂펃펄펅펆펇펈펉펊펋펌펍펎펏펐펑펒펓펔펕펖펗 :54167
54168: 페펙펚펛펜펝펞펟펠펡펢펣펤펥펦펧펨펩펪펫펬펭펮펯펰펱펲펳 :54195
54196: 펴펵펶펷편펹펺펻펼펽펾펿폀폁폂폃폄폅폆폇폈평폊폋폌폍폎폏 :54223
54224: 폐폑폒폓폔폕폖폗폘폙폚폛폜폝폞폟폠폡폢폣폤폥폦폧폨폩폪폫 :54251
54252: 포폭폮폯폰폱폲폳폴폵폶폷폸폹폺폻폼폽폾폿퐀퐁퐂퐃퐄퐅퐆퐇 :54279
54280: 퐈퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖퐗퐘퐙퐚퐛퐜퐝퐞퐟퐠퐡퐢퐣 :54307
54308: 퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷퐸퐹퐺퐻퐼퐽퐾퐿 :54335
54336: 푀푁푂푃푄푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓푔푕푖푗푘푙푚푛 :54363
54364: 표푝푞푟푠푡푢푣푤푥푦푧푨푩푪푫푬푭푮푯푰푱푲푳푴푵푶푷 :54391
54392: 푸푹푺푻푼푽푾푿풀풁풂풃풄풅풆풇품풉풊풋풌풍풎풏풐풑풒풓 :54419
54420: 풔풕풖풗풘풙풚풛풜풝풞풟풠풡풢풣풤풥풦풧풨풩풪풫풬풭풮풯 :54447
54448: 풰풱풲풳풴풵풶풷풸풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋 :54475
54476: 퓌퓍퓎퓏퓐퓑퓒퓓퓔퓕퓖퓗퓘퓙퓚퓛퓜퓝퓞퓟퓠퓡퓢퓣퓤퓥퓦퓧 :54503
54504: 퓨퓩퓪퓫퓬퓭퓮퓯퓰퓱퓲퓳퓴퓵퓶퓷퓸퓹퓺퓻퓼퓽퓾퓿픀픁픂픃 :54531
54532: 프픅픆픇픈픉픊픋플픍픎픏픐픑픒픓픔픕픖픗픘픙픚픛픜픝픞픟 :54559
54560: 픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷픸픹픺픻 :54587
54588: 피픽픾픿핀핁핂핃필핅핆핇핈핉핊핋핌핍핎핏핐핑핒핓핔핕핖핗 :54615
54616: 하학핚핛한핝핞핟할핡핢핣핤핥핦핧함합핪핫핬항핮핯핰핱핲핳 :54643
54644: 해핵핶핷핸핹핺핻핼핽핾핿햀햁햂햃햄햅햆햇했행햊햋햌햍햎햏 :54671
54672: 햐햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤향햦햧햨햩햪햫 :54699
54700: 햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇 :54727
54728: 허헉헊헋헌헍헎헏헐헑헒헓헔헕헖헗험헙헚헛헜헝헞헟헠헡헢헣 :54755
54756: 헤헥헦헧헨헩헪헫헬헭헮헯헰헱헲헳헴헵헶헷헸헹헺헻헼헽헾헿 :54783
54784: 혀혁혂혃현혅혆혇혈혉혊혋혌혍혎혏혐협혒혓혔형혖혗혘혙혚혛 :54811
54812: 혜혝혞혟혠혡혢혣혤혥혦혧혨혩혪혫혬혭혮혯혰혱혲혳혴혵혶혷 :54839
54840: 호혹혺혻혼혽혾혿홀홁홂홃홄홅홆홇홈홉홊홋홌홍홎홏홐홑홒홓 :54867
54868: 화확홖홗환홙홚홛활홝홞홟홠홡홢홣홤홥홦홧홨황홪홫홬홭홮홯 :54895
54896: 홰홱홲홳홴홵홶홷홸홹홺홻홼홽홾홿횀횁횂횃횄횅횆횇횈횉횊횋 :54923
54924: 회획횎횏횐횑횒횓횔횕횖횗횘횙횚횛횜횝횞횟횠횡횢횣횤횥횦횧 :54951
54952: 효횩횪횫횬횭횮횯횰횱횲횳횴횵횶횷횸횹횺횻횼횽횾횿훀훁훂훃 :54979
54980: 후훅훆훇훈훉훊훋훌훍훎훏훐훑훒훓훔훕훖훗훘훙훚훛훜훝훞훟 :55007
55008: 훠훡훢훣훤훥훦훧훨훩훪훫훬훭훮훯훰훱훲훳훴훵훶훷훸훹훺훻 :55035
55036: 훼훽훾훿휀휁휂휃휄휅휆휇휈휉휊휋휌휍휎휏휐휑휒휓휔휕휖휗 :55063
55064: 휘휙휚휛휜휝휞휟휠휡휢휣휤휥휦휧휨휩휪휫휬휭휮휯휰휱휲휳 :55091
55092: 휴휵휶휷휸휹휺휻휼휽휾휿흀흁흂흃흄흅흆흇흈흉흊흋흌흍흎흏 :55119
55120: 흐흑흒흓흔흕흖흗흘흙흚흛흜흝흞흟흠흡흢흣흤흥흦흧흨흩흪흫 :55147
55148: 희흭흮흯흰흱흲흳흴흵흶흷흸흹흺흻흼흽흾흿힀힁힂힃힄힅힆힇 :55175
55176: 히힉힊힋힌힍힎힏힐힑힒힓힔힕힖힗힘힙힚힛힜힝힞힟힠힡힢힣 :55203

 

 

출처 : http://tong.nate.com/hooah0401/39472997

 

'develop > 공통' 카테고리의 다른 글

DualStack Mobile IPv6 with Multiple Care of Address  (0) 2013.06.24
IPv4, IPv6 체크 정규식  (0) 2013.04.02
웹 표준에 대한 블로그  (0) 2012.11.26
HTML5 변경 점  (0) 2012.11.26
C++ Operator Precedence  (0) 2010.02.23
반응형

ctrl 해더

#include <ObjSafe.h>

 DECLARE_DYNCREATE(CBTool2Ctrl)


// ObjSafe 시작
 DECLARE_INTERFACE_MAP()

 BEGIN_INTERFACE_PART(ObjSafe, IObjectSafety)
  STDMETHOD_(HRESULT, GetInterfaceSafetyOptions) (
   /* [in] */ REFIID riid,
   /* [out] */ DWORD __RPC_FAR *pdwSupportedOptions,
   /* [out] */ DWORD __RPC_FAR *pdwEnabledOptions
  );
  STDMETHOD_(HRESULT, SetInterfaceSafetyOptions) (
   /* [in] */ REFIID riid,
   /* [in] */ DWORD dwOptionSetMask,
   /* [in] */ DWORD dwEnabledOptions
  );
 END_INTERFACE_PART(ObjSafe);
// ObjSafe 끝

ctrl 코드

// IObjectSafety 용 인터페이스맵입니다

BEGIN_INTERFACE_MAP( CBTool2Ctrl, COleControl )
INTERFACE_PART(CBTool2Ctrl, IID_IObjectSafety, ObjSafe)
END_INTERFACE_MAP()


/////////////////////////////////////////////////////////////
// IObjectSafety member functions

ULONG FAR EXPORT CBTool2Ctrl::XObjSafe::AddRef()
{
 METHOD_PROLOGUE(CBTool2Ctrl, ObjSafe)
 return pThis->ExternalAddRef();
}

ULONG FAR EXPORT CBTool2Ctrl::XObjSafe::Release()
{
 METHOD_PROLOGUE(CBTool2Ctrl, ObjSafe)
 return pThis->ExternalRelease();
}

HRESULT FAR EXPORT CBTool2Ctrl::XObjSafe::QueryInterface(
REFIID iid, void FAR* FAR* ppvObj)
{
 METHOD_PROLOGUE(CBTool2Ctrl, ObjSafe)
 return (HRESULT)pThis->ExternalQueryInterface(&iid, ppvObj);
}

const DWORD dwSupportedBits =
INTERFACESAFE_FOR_UNTRUSTED_CALLER |
INTERFACESAFE_FOR_UNTRUSTED_DATA;
const DWORD dwNotSupportedBits = ~ dwSupportedBits;

HRESULT STDMETHODCALLTYPE
CBTool2Ctrl::XObjSafe::GetInterfaceSafetyOptions(
/* [in] */ REFIID riid,
/* [out] */ DWORD __RPC_FAR *pdwSupportedOptions,
/* [out] */ DWORD __RPC_FAR *pdwEnabledOptions)
{
 METHOD_PROLOGUE(CBTool2Ctrl, ObjSafe)

 HRESULT retval = ResultFromScode(S_OK);

 // does interface exist?
 IUnknown FAR* punkInterface;
 retval = pThis->ExternalQueryInterface(&riid, (void * *)&punkInterface);
 if (retval != E_NOINTERFACE) {  // interface exists
  punkInterface->Release(); // release it--just checking!
 }

 // we support both kinds of safety and have always both set,
 // regardless of interface
 *pdwSupportedOptions = *pdwEnabledOptions = dwSupportedBits;

 return retval; // E_NOINTERFACE if QI failed
}

HRESULT STDMETHODCALLTYPE
CBTool2Ctrl::XObjSafe::SetInterfaceSafetyOptions(
/* [in] */ REFIID riid,
/* [in] */ DWORD dwOptionSetMask,
/* [in] */ DWORD dwEnabledOptions)
{
 METHOD_PROLOGUE(CBTool2Ctrl, ObjSafe)

 // does interface exist?
 IUnknown FAR* punkInterface;
 pThis->ExternalQueryInterface(&riid,(void**)&punkInterface);
 if (punkInterface) {// interface exists
  punkInterface->Release(); // release it--just checking!
 }
 else { // interface doesn't exist
  return ResultFromScode(E_NOINTERFACE);
 }

 // can't set bits we don't support
 if (dwOptionSetMask & dwNotSupportedBits) {
  return ResultFromScode(E_FAIL);
 }

 // can't set bits we do support to zero
 dwEnabledOptions &= dwSupportedBits;
 // (we already know there are no extra bits in mask )
 if ((dwOptionSetMask & dwEnabledOptions) != dwOptionSetMask) {
  return ResultFromScode(E_FAIL);
 }  

 // don't need to change anything since we're always safe
 return ResultFromScode(S_OK);
}

'develop > windows' 카테고리의 다른 글

C# ActiveX 만들기  (0) 2010.09.29
ActiveX 에서 다른 ActiveX를 생성할 때 주의점  (0) 2010.07.29
BOOST 컴파일 옵션  (0) 2010.02.03
메모리릭 발생 위치에 Breakpoint 설정하기  (0) 2010.02.03
MS Patch API  (0) 2010.02.03
반응형

bjam -sTOOLS=msvc-stlport -sBUILD="debug release <runtime-link>static/dynamic" -sSTLPORT_PATH="C:\Program Files\Microsoft Visual Studio\VC98\Include\stlport"

 

--with-library-name

 

--with-regex

--toolset=msvc-8.0

 

bjam --help

 

bjam [options] [install|stage]

 

  1. bjam --build-type=complete --build-dir="c:\boost-build" -sICU_PATH="c:\Project\icu4c-3_8_1-src\icu" -sICU_LINK="c:\Project\icu4c-3_8_1-src\icu\lib" --toolset=msvc --without-mpi --without-python install  

bjam --build-type=complete --build-dir="c:\boost-build" -sICU_PATH="c:\Project\icu4c-3_8_1-src\icu" -sICU_LINK="c:\Project\icu4c-3_8_1-src\icu\lib" --toolset=msvc --without-mpi --without-python install

--without-mpi, --without-python은 상황에 따라 추가하거나 제거하셔도 좋습니다.
--build-type=complete는 디버그, 릴리즈, 정적 라이브러리, 동적 라이브러리, 멀티 스레드등 모든 버젼을 컴파일합니다.

 

 

  나 같은 경우는
  command 창에서
  D:\SDK\boost_1_35_0\bjam debug link=static
  으로 빌드하였다.
  debug는 release, static은 dynamic으로 바꿀 수 있다.

'develop > windows' 카테고리의 다른 글

ActiveX 에서 다른 ActiveX를 생성할 때 주의점  (0) 2010.07.29
IObjectSafety  (1) 2010.02.03
메모리릭 발생 위치에 Breakpoint 설정하기  (0) 2010.02.03
MS Patch API  (0) 2010.02.03
File Drag & Drop  (0) 2010.02.03
반응형

메모리릭 발생 위치에 Breakpoint 설정하기

 

메모리릭이 발생하면 디버거를 종료했을 때 이런 메시지가 출력된다.

Detected memory leaks!
Dumping objects ->
{103144} normal block at 0x01C79B18, 12 bytes long.
Data: <            > 18 9B C7 01 18 9B C7 01 CD CD CD CD

왠 만하면 어느 파일의 몇 번째 줄에서 메모리릭이 발생했다고 알려주지만, 이 경우처럼 디버거가 알려주지 못하는 경우도 많고, for문 안에서 메모리릭이 발생하는 경우처럼 위치만 알아서는 정확히 언제 발생하는지 알기 어려울 때도 있다. 이럴 때 사용할 수 있는 것이 중괄호안에 들어있는 숫자다. 이 숫자는 메모리 할당 번호(Memory AlLocation Number)인데, 번호가 103144라는 것은 이 프로그램에서 할당받은 메모리 중에서 103144번째 블록이라는 뜻이다(헉... 내 프로그램이 메모리를 이렇게 많이 할당받았던가 -0-;;).

프로그램 코드의 적당한 위치에

_crtBreakAlloc = 103144; 
라 고 적어주고 디버거를 실행하면 이 메모리를 할당하려고 할 때 프로그램을 Break 시켜준다. 디버그 버전에서는 힙에 메모리를 할당할 때마다 crtdbg 라이브러리(이렇게 표현해도 되나?)가 이 변수를 체크해서 Break 해주는 것이다. 디버깅중에 Watch 윈도우에서 변수 값을 바꿔서 다른 메모리 할당 번호에서 멈출 수도 있다. 전역 변수 값을 변경하는 대신에

_CrtSetBreakAlloc(103144); 
라고 함수를 호출해주어도 마찬가지 효과가 있다.

MSDN 기술문서 중 "Detecting and Isolating Memory Leaks"를 참고했음.
 
//------------------------------------------------------------------------------------
사용 방법 설명
 

Detected memory leaks!
Dumping objects ->
{103144} normal block at 0x01C79B18, 12 bytes long.
Data: <            > 18 9B C7 01 18 9B C7 01 CD CD CD CD

추가 헤더 파일 : #include <crtdbg.h>
 
[MFC]
~App::InitInstance() 함수 상위에 아래와 같이 문제가 발생된 메모리 블럭 설정
    ...
 
    _CrtSetBreakAlloc(103144);
    _CrtMemDumpAllObjectsSince(0);
}
 
[Win32/Console]
main()
{
    ...
    _CrtSetBreakAlloc(103144);
    _CrtMemDumpAllObjectsSince(0);

'develop > windows' 카테고리의 다른 글

IObjectSafety  (1) 2010.02.03
BOOST 컴파일 옵션  (0) 2010.02.03
MS Patch API  (0) 2010.02.03
File Drag & Drop  (0) 2010.02.03
Remote Debugging  (0) 2010.02.03
반응형
MS Patch API... 프로그래밍

2008/05/13 18:13

복사 http://blog.naver.com/ships95/120051350941

회사에서 하는 업무중에서 직접적으로 돈과 관련 된 부분이 하나 있다.
고객에게 전달하는 파일의 양이 많을 때 사용하는 기술로
많은 큰파일을 전달할 시에 만약 고객이 이전 버전의 파일이 있다면 그파일과의 차분만 전달하고
그 차분파일(델타파일)을 이용해서 파일을 복구하면 전송시 드는 각종비용(특히 트래픽 사용량)을
줄이는 기술이다.

이 기술의 변형은 굉장히 많지만 이러한 생각이 기본적으로 나오게 된 곳은
웹서버에서 트래픽을 줄이기위한 기술에서 출발했다고 한다.

위의 까지는 서론이었고...

자 회사에서 지금까지 적용해서 사용했던 기술은 다음과 같다.
mspatch API : http://msdn2.microsoft.com/en-us/library/ms811406.aspx
mspatchc.dll 로 델타를 생성하고
mspatcha.dll 로 델타를 적용한다.
그리고 모든 windows OS를 지원하고 unix 계열의 지원은 되지 않는다.

하지만 관련 모듈이 16MB 에서 알려지지 않은 심각한 문제가 발생되었다.
아래 부분에 상세한 코드 및 설명이 있다.

 

-------------------------------------------------------------------------

 

BOOL CMakeDeltaCacheBase::MakeDeltaFile(LPCTSTR szFrom, LPCTSTR szDest, LPCTSTR szDelta, int nDeltaEngineType)

{

             PATCH_OLD_FILE_INFO_A ofi;

             ofi.SizeOfThisStruct = sizeof(PATCH_OLD_FILE_INFO_A);

             ofi.OldFileName                   = szFrom;

             ofi.IgnoreRangeCount = 0;

             ofi.RetainRangeCount = 0;

 

             CFileStatus st;

             CFile::GetStatus(szDest, st);                   

             ULONG lflags = (st.m_size >= 8 * 1024 * 1024) ? (PATCH_OPTION_USE_LZX_BEST | PATCH_OPTION_USE_LZX_LARGE) : PATCH_OPTION_USE_LZX_A;

             if (PATCH_OPTION_USE_LZX_A != lflags)

             {

                           logOutput("File size over 8MB option changed : %s\n", szDest);

             }

 

             BOOL bResult = CreatePatchFileEx(1, &ofi, szDest, szDelta, lflags, NULL, NULL, NULL);

             if(!bResult)

             {

                           DWORD dwError = ::GetLastError();

                           m_strErrorMessage = szarrMSC_ErrMessage[dwError - 0xC00E3101];

                           logOutput("[error] MakeDeltaFile(%s) ErrorCode(0x%08x)\n", szDest, ::GetLastError());

                           return FALSE;

             }

             Return TRUE;

}

 

BOOL CMakeDeltaCacheBase::ApplyDeltaFile(LPCTSTR szFrom, LPCTSTR szDest, LPCTSTR szDelta, int nDeltaEngineType)

{

             BOOL bResult = ApplyPatchToFileEx(szDelta, szFrom, szDest, PATCH_OPTION_USE_LZX_A, NULL, NULL);

             if(!bResult)

             {

                           DWORD dwError = ::GetLastError();

                           m_strErrorMessage = szarrMSA_ErrMessage[dwError - 0xC00E4101];

                           logOutput("[error] ApplyDeltaFile(%s) ErrorCode(0x%08X))\n", szDest, ::GetLastError());

                           return FALSE;

             }

 

             return TRUE;

}

 

위의 두개의 함수를 통해 mspatchc.dll mspatcha.dll 을 사용하는데

CreatePatchFileEx() 함수의 세번째 파라미터에 들어가는 szDest 파일의 크기가 16MB보다 큰 경우 CreatePatchFileEx() 통해서 델타파일이 생성되나

ApplyPatchToFileEx() 함수를 적용하면 ERROR_PATCH_DECODE_FAILURE 에러가 발생됨

 

-------------------------------------------------------------------------

 

이 문제를 MS에 문의 하였으나 깜깜 무소식...
그래서 해당 문제를 해결하기 위해 한동한 google에서 binary delta compression 을 주제로 검색을 하게 되었다.

ms, wikipedia 등등에서 검색을 해보니 다음과 같은 것으로 정리되었다.
1. vcdiff           http://www.faqs.org/rfcs/rfc3284.html
2. xdelta          http://xdelta.org/
3. msdelta       http://msdn2.microsoft.com/en-us/library/bb267312.aspx
4. zdelta         http://cis.poly.edu/zdelta/

간단히 설명하면
1. vcdiff : 델타에 관련된 논문.  아 어렵다...여기까지
2. xdelta : 최신 버전은 xdelta3 로 소스까지 있으며 속도는 가장 빠른 것으로 보인다.
3. msdelta : vista 부터 적용된 업데이트 관련 델타 엔진, ms에서 사용중임
4. zdelta : zlib을 바탕으로 수정된 것으로 매우 빠르고 델타생성 크기가 적절하다!

이중 zdelta는 속도와 델타파일의 크기가 매우 만족스러웠다.
msdelta 는 일단 mspatch API에서 발생되었던 문제 16MB 큰파일에 대한 처리가 해결되었으나 델타생성시 매우 긴 시간이 걸린다.
물론 델타의 크기가 매우 작은 장점이 있다. 델타 적용 속도는 zdelta와 비슷하거나 약간 더 걸리는 정도임.
기존의 mspatch가 평균적으로 봤을 때 크기는 가장 작다.
xdelta는 그냥 평범하다고 하는 편이 나을 것 같다. 물론 이곳에 적지 않는 그 기능상으로 문제가 많은 것들도 많지만 위의 리스트에서 보면 평범하다는 것이다.

그래서 zdelta library를 사용하기로 결정하고 회사내의 모든 파일을 적용해 봤는데...
어라라... 파일크기 1.58MB vxd 파일의 델타비교시 그냥 zip으로 압축한것과 동일한 크기의
델타파일이 생성되는 문제가 있었다.

하도 이상해서 이리저리 테스트 해보고 소스를 봤지만 흐...결코 쉽지 않았다.
그래서 해당 홈피에서 관련자 e메일 주소를 찾아서 이 내용을 영문으로 된 글을 보냈으나...
1MB 이상에서는 아주 비슷한 파일이라도 문제가 발생할 수 있다는 요지의 답변만 받았다.
차기버전이 준비중이지만 언제 나올지 모른다나 ㅜ.ㅜ

관련 소스를 더 보고 있어야 할지 고민중이다.
일단 사내의 모든 파일이 16MB보다 작다면 계속 mspatch API를 써야 할 것 같은데.
unix 로의 적용을 위해서는 zdelta를 적용하고 싶지만 문제가 있을 수 있고...

사내의 분들과 토론해본 결과 일단 해당 문제를 적절하게 해결하고
해당 기술은 보유해야 한다는 결론으로 나고 있다.

시간이 되면 zdelta 의 소스를 좀더 분석해야 할 것 같다.

 

그 이 후에 ...

 

http://dalhee.wowdns.com/tt/somy/trackback/78
에서는 16MB 제한이 있다는 것은 최근에 MS에서 나온 msdelta.dll 관련 문서
http://msdn2.microsoft.com/en-us/library/bb267312.aspx
에서 확인할 수 있었다.
(흠...최신문서에는 파일 크기에 대한 언급이 사라졌군...예전엔 언급이 있었었는데
16MB 제한이 있고 msdelta는 32MB 제한이 있다고...)


하지만 회사에서 잘 사용하던 델타 생성라이브러리 (mspatchc.dll) 이 최근들에
특정파일에 대해서 ERROR_PATCH_ENCODE_FAILURE = 0xC00E3101 오류를
내면서 델타를 만들지 못하는 문제가 심심치 않게 발생되었다.

이것으로 인해 ms 유료서비스를 받았지만 관련 문제에 대해서 이런 저런 답변을 받지
못하고 16MB 제한에 대한 것이 스펙이라는 말만 듣고서는 끝났다.
(하지만 이 DLL로 확인을 해보니 16MB 이상의 파일도 정상적으로 생성되었다!!! 해결!!!)

오늘 일하다가 갑자기 최신버전을 찾아볼까? 라는 생각에 구글신님에게 물어봐도
뾰족한 답을 듣지 못하다가 갑자기 MS SDK 최신버전에 혹시 있지 않을까? 라는 생각에
테스트를 위해서 설치한 VS2008 설치 폴더에 찾아보니!!!

기존에 사용하던 것보다 더 최신인 mspatchc.dll 을 찾을 수 있었다!!!
버전은 6.0.6000.16384 였고 기존에는 5.2.3760.0 였었다.
새로운 파일을 가지고 델타생성에 문제가 있던 셋에 테스트 해보니 성공!!!!!!! (으아앗!!!!!!)
정말 황당 그자체였다!!!

유료서비스를 받아도 못 해결했는데 이렇게 해결이 되다니!!!

버그 수정판이었고 해당 파일은 98에서도 정상적으로 동작함을 확인하였다.

 

출처: http://dalhee.wowdns.com/

[출처] MS Patch API...|작성자 비우꺼

'develop > windows' 카테고리의 다른 글

BOOST 컴파일 옵션  (0) 2010.02.03
메모리릭 발생 위치에 Breakpoint 설정하기  (0) 2010.02.03
File Drag & Drop  (0) 2010.02.03
Remote Debugging  (0) 2010.02.03
HTTP 에러  (0) 2010.02.03
반응형

파일 탐색기 등에서 파일을 드래그 & 드롭해서 내가 만든 프로그램에 놓았을 때,

WM_DROPFILES 이벤트가 발생됩니다. 이를 이용하기 위해서는 아래와 같이 코딩하면 됩니다.

 

1. ON_WM_DROPFILES()         // 클래스 위저드에서 WM_DROPFILES를 재정의한다.
2. DragAcceptFiles();

 

BEGIN_MESSAGE_MAP(CLeftView, CTreeView)
//{{AFX_MSG_MAP(CLeftView)
ON_WM_DROPFILES()         // 클래스 위저드에서 WM_DROPFILES를 재정의한다.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


void CLeftView::OnInitialUpdate() - oncreate()서 해도되고..
{
    CTreeView::OnInitialUpdate();
   

    // 파일 드래그 & 드롭을 위해 불러준다.
    DragAcceptFiles();
}

  

void CLeftView::OnDropFiles(HDROP hDropInfo)
{
    int nFiles;
    char szPathName[MAX_PATH];
    CString strFileName;
   
    // 드롭된 파일의 갯수
    nFiles = ::DragQueryFile( hDropInfo, 0xFFFFFFFF, szPathName, MAX_PATH );
//0xFFFFFF=-1이지?   


    for(int i = nFiles-1 ; i >= 0; i--)
    {
        // 파일의 경로 얻어옴
        ::DragQueryFile(hDropInfo, i, szPathName, MAX_PATH);
        AfxMessageBox( szPathName );
    }
   
    ::DragFinish(hDropInfo);
   
    CTreeView::OnDropFiles(hDropInfo);
}

 

 

 

-Drag기능 활성화
VOID DragAcceptFiles(<HWND hWnd,BOOL fAccept> or <bool>);->인자없이 쓰세요~


-HDROP에 대한 파일 경로를 얻어옴
UINT DragQueryFile(HDROP hDrop,UINT iFile,LPTSTR lpszFile,UINT cch);
hDrop:드랍될 파일들의 구조의 핸들(WParam)
iFile:드래그된 파일들의 인덱스
lpszFile:두번째에서 가리킨 인덱스의 파일 경로
cch:세번째 인자인 파일경로의 사이즈 

'develop > windows' 카테고리의 다른 글

BOOST 컴파일 옵션  (0) 2010.02.03
메모리릭 발생 위치에 Breakpoint 설정하기  (0) 2010.02.03
MS Patch API  (0) 2010.02.03
Remote Debugging  (0) 2010.02.03
HTTP 에러  (0) 2010.02.03
반응형
출처 스크랩만을 위한 블로그 입니다. | 코니
원문 http://blog.naver.com/konny2020/40016672489

<리모트 디버깅 하기>

 일단 디버깅을 시작할 PC의 프로젝트 메뉴의 Setting 을 클릭합니다. 그 중 Debug tab 을 선택하면 Excutable for Debug Session 이 있는데, 이 란을 자신의 프로그램이 있는 디렉토리와 화일명을 쓰도록 합니다.

 두번째 란인 Working Directory 는 비워 놓습니다.

 세번째란은 Remote Executable path 로 상대방 pc ( 실행이 될 .. )에서 잡아놓은 내 가상 드라이브와 실행화일 명을 쓰도록 합니다. ( 일단 상대방에서 내가 디버깅을 실행할 디렉토리를 가상드라이브로 연결해야만 합니다. 그러기 위해선 당연히 네트워크상에서 그 디렉토리는 공유가 되어야만 하겠지요 )

  그 다음은 build 메뉴안에 debugger remote connection 을 선택합니다. 아마 local, network 등의 여러 connection type 이 있을 겁니다. 그 중 자신이 원하는 네트워크를 선택한후 setting 으로 자신의 실행화일이 실행이 될 상대방의 네트워크 주소를 기입합니다. 

 상대방 pc 에서 msvcmon.exe 화일을 띄어 놓습니다.(자주쓰이니 바탕화면에 바로가는 아이콘으로...) 물론 그곳에서도 셋팅은 필요합니다. 연결이 될 상대방의 네트워크 주소를 기입해야 합니다.

 그리고 connection 으로 대기상태에서 기다립니다. 그리고는 f5 키로 디버깅을 시작하면 잠시후 이것저것 dll 화일에 대해서 불만(?)을 토로할 수 (?) 있으나 무시하고 넘어갑니다. ( 두 컴의 소프트웨어 상태가 같은게 제일 편합니다. 같은 버전의 윈도우, 서비스 팩도 같이 깐 비주얼 스투디오.....)

 아마 리모트가 되고있는 자신의 프로그램을 상대방의 pc 에서 보실수가 있을겁니다.

 

- 리모트 디버깅에 필요한 화일 

리모트 디버깅에 필요한 화일은 디버깅할 컴퓨터에서는 VC++ 이 설치되어있기 때문에 추가로 필요한 화일이 없습니다. 타겟 컴퓨터에는 다음과 같은 화일들이 필요합니다.

    MSVCMON.EXE
    TLN0T.DLL
    DM.DLL
    MSDIS110.DLL

이상 4개의 화일은 \Program Files\Microsoft Visual Studio\Common\MSDev98\Bin

디렉토리에 있습니다.

    MSVCP6O.DLL
    MSVCRT.DLL

이상 2개의 화일은 \Windows\System 디렉토리에 있습니다.

이 화일들을 타겟컴퓨터의 \Windows\System 디렉토리로 복사합니다.

 

- 윈도우즈 NT에 관한 추가사항

윈도우즈 NT 에서는 위의 화일들 이외에 PSAPI.DLL이란 화일도 System 디렉토리로 복사 해야합니다. MSVCRT.DLL 화일을 System32 디렉토리로 옮깁니다.

 프로그램이 사용하는 DLL들도 타겟컴퓨터로 복사해야 됩니다. 릴리즈 버전 런타임 DLL은 운영체제와 같이 설치가 되었겠지만 디버그 버전 DLL들은 기본적으로는 설치가 안되었겠죠? 

기본적으로 MSVCRTD.DLL(Visual C++ Runtime DLL) 이 필요하고 iostream과 관련된 함수를 사용하셨다면 MSVCIRTD.DLL이 추가됩니다. 

MFC를 사용하신다면 다음 화일들도 추가됩니다.

    MFC42D.DLL (core)
    MFCO42D.DLL (OLE)
    MFCD42D.DLL (database)
    MFCN42D.DLL (network) 

그외에 프로그램이 추가적으로 사용하는 DLL이 있다면 그것도 복사해야겠지요. 만일 테스트할 프로그램에서 정확히 어떤 DLL들을 사용하는지 모르시겠다면 로컬로 디버깅 할때 VC++ IDE(통합개발환경)의 Output Window에 나오는 메시지들을 참고하세요.

예를 들어 "Loaded symbols for 'C:\WINDOWS\SYSTEM\MFCO42D.DLL" 이란 메시지가 있다면 프로그램이 MFCCO42D.DLL을 사용한다는 뜻이니까 타겟 컴퓨터에도 이 화일이 있어야 합니다.

  이 방법은 일반적으로 프로그램을 배포할 때도 유용한 팁이므로 기억해 두시면 유용할 겁니다

 

- 타겟 컴퓨터의 리모트 디버깅 환경설정하기

1. MSVCMON.EXE를 실행합니다.

"Visual C++ Debug Monitor"란 제목을 가진 다이알로그가 나타나는데, 리스트박스에 TCP/IP란 항목만 있을겁니다. VC++ 4.2버전에는 Serial도 있었는데 언제 없어졌는지 VC++ 6에선 이 항목이 없더군요.

2. Settings 버튼을 누르면 "Win32 Network Settings"란 제목을 가진 다이알로그가 나타납니다.

3. "Target machine name or address"란 필드에 디버깅을 할 타겟 컴퓨터의 IP어드레스나 컴퓨터 명을 적어주고 OK 버튼을 누릅니다.

4. Connect 버튼을 누르면 "Connecting.."이란 제목을 가지는 다이알로그가 나오는데 대기 상태로 들어간 것이지요. 취소하시려면 Disconnect 버튼을 누르면 되겠고요.

여기까지가 타겟 컴퓨터의 셋팅 전부 입니다.

 

- 디버깅을 할 컴퓨터의 리모트 디버깅 환경설정하기

1. IDE의 Build 메뉴에서 Debugger Remote Connection 항목을 선택하면 "Remote Connection" 다이알로그가 나타납니다. 

2. 여기 리스트 박스에는 항목이 두개가 있는데 "Network(TCP/IP)"항목을 선택하고 Settings 버튼을 누릅니다. "Target machine name or address" 필드에다 타겟 컴퓨터의 IP어드레스나 컴퓨터 명을 적어주고 OK버튼을 누릅니다. 

3. "Remote Connection" 다이알로그에서도 OK버튼을 눌러 다이알로그를 닫습니다.

4. IDE의 Project의 Settings 항목을 선택하면 "Project Settings" 다이알로그가 나타는데 Debug 탭을 눌러줍니다.

5. "Category" 콤보박스 필드는 General로 하시고 "Executable for Debug Session" 필드에는 실행화일의 경로를 적어주시는데 디버깅하는 컴퓨터 입장에서 본 실행화일의 경로를 의미합니다.

예를 들어 타겟컴퓨터의 이름이 "TARGET"이고 실행화일이 "Shaerd"란 공유폴더에 들어있다면 "\\TARGET\Shared\Test.exe"라고 적어주시고 타겟컴퓨터의 "Shared" 란 공유폴더가 "H"라는 네트워크 드라이브로 잡혀 있다면 "H:\Test.exe"라고 적어주시면 되죠.

 "Working Directory" 필드는 공란으로 비워두시고 "Remote Executable Path" 필드는 타겟컴퓨터 입장에서 본 실행화일의 경로를 적어줍니다. 예를 들면 "C:\Shared\Test.exe"와 같이 적어주시면 됩니다. 

6. 실행 화일이외에 추가로 디버깅할 DLL이 있다면 "Category" 콤보박스 필드에서 "Additional DLLs"를 선택한 후 디버깅하는 컴퓨터 입장에서 본 DLL 화일의 경로를 입력하시면 됩니다. 추가로 디버깅할 DLL이 없다면 이 과정은 생략하시구요. 

7. F5키를 눌러 디버깅을 시작합니다.

 

- 참고 사항

디버깅을 시작하면 "Find Local Module"이라는 다이알로그가 나타나고 프로그램이 사용하는 DLL 이름을 하나씩 대면서 이 DLL의 경로를 물어봅니다. "Try to locate other DLLs"란 체크박스의 표시를 풀어버리면 귀찮게 안할 겁니다. 그리고 두대의 시스템에 있는 DLL버전이나 언어형식이 일치하지 않으면 경고 메시지 박스가 나타나는데 무시하시거나 찜찜하시면 어느 한쪽으로 DLL을 복사해서 똑같이 만들어 주면 되겠죠.

 리모트 디버깅을 하다보면 실행속도가 많이 떨어지는 것을 느낄 수 있는데 네트워크로 연결하다 보니 어쩔수 없는 부분이죠. 하지만 루프를 많이 돈다거나 계산결과를 기다리는 경우에는 IDE를 Minimize 상태로 해두면 조금의 속도 향상을 얻을 수 있습니다.  

 

< 듀얼 모니터 디버깅 하기>

아래 방법을 쓰시기 전에(비디오카드 하나 더꼽기 전) 바이오스 셋업 항목에서 반드시 Init VGA sequence 인가? 하는 설정을 반드시 먼저 설정하고 카드를 꼽으세요. 어느 카드를 메인 카드로 쓰겠다는걸 뜻합니다. 그리고 비디오 드라이버는 둘다 최신으로 해주시구요.(안되다 되는걸 봐서요.) 비디오 카드끼리 궁합도 있으니...

괜히 이상한 카드로 인내심 테스트 하지 마시구요.

 보통 프로그램(윈도우 기반)은 여기 까지만 해도 디버깅이 잘 되는되요... (보통 듀얼 쓸것도 없지만...^^) DirectX같이 풀스크린 잡아먹는 녀석은 디버깅이 힘들죠...^^ 

 DirectDraw 에센셜에 보면 나와있는데, 우선,제어판의 DirectX실행하신다음 DirectDraw탭에서 Advanced에서 다중모니터 디버깅옵션을 체크해줍니다. 그 다음 중요한것은 개발환경은 Primary Device에 그리고 만드시는 애플리케이션을 Secondary Device에 띄우셔야 합니다... 

 Secondary에 띄우시는 방법은(아주 무식하게 하자면) (이것을 제대로 쓰시고자 하시면 FSWindow라는 예제에 비디오 카드를 고르게 해주는 루틴이 들어있으니 참고하세요) 

 DDRAW  예제에서 DDENUM이라는 실행하셔서 Secondary디바이스가 몇번째로 잡히는지 확인하신다음 DirectDrawEnumerateEX함수에서 내부적인 카운트를 설정하셔서 세번째 실행됐을때 그때의 GUID를 복사하신다음(반드시 복사를 하셔야합니다.그냥 어사인은 안됩니다. 나중에 해제되는것 같습니다) 그 GUID를 가지고 DirectDrawCreate에 첫번째 인자로 넣어주시면 됩니다.... (보통 널값을 넣습니다)

 

출처 : http://eunchul.com/database/board/cat.php?data=Win32_API&board_group=D40bc3894ad581&cur_page=3


'develop > windows' 카테고리의 다른 글

BOOST 컴파일 옵션  (0) 2010.02.03
메모리릭 발생 위치에 Breakpoint 설정하기  (0) 2010.02.03
MS Patch API  (0) 2010.02.03
File Drag & Drop  (0) 2010.02.03
HTTP 에러  (0) 2010.02.03
반응형

Error Messages

The WinINet functions return error codes where appropriate. The following errors are specific to the WinINet functions.

ERROR_FTP_DROPPED
12111
The FTP operation was not completed because the session was aborted.
ERROR_FTP_NO_PASSIVE_MODE
12112
Passive mode is not available on the server.
ERROR_FTP_TRANSFER_IN_PROGRESS
12110
The requested operation cannot be made on the FTP session handle because an operation is already in progress.
ERROR_GOPHER_ATTRIBUTE_NOT_FOUND
12137
The requested attribute could not be located.
ERROR_GOPHER_DATA_ERROR
12132
An error was detected while receiving data from the Gopher server.
ERROR_GOPHER_END_OF_DATA
12133
The end of the data has been reached.
ERROR_GOPHER_INCORRECT_LOCATOR_TYPE
12135
The type of the locator is not correct for this operation.
ERROR_GOPHER_INVALID_LOCATOR
12134
The supplied locator is not valid.
ERROR_GOPHER_NOT_FILE
12131
The request must be made for a file locator.
ERROR_GOPHER_NOT_GOPHER_PLUS
12136
The requested operation can be made only against a Gopher+ server, or with a locator that specifies a Gopher+ operation.
ERROR_GOPHER_PROTOCOL_ERROR
12130
An error was detected while parsing data returned from the Gopher server.
ERROR_GOPHER_UNKNOWN_LOCATOR
12138
The locator type is unknown.
ERROR_HTTP_COOKIE_DECLINED
12162
The HTTP cookie was declined by the server.
ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION
12161
The HTTP cookie requires confirmation.
ERROR_HTTP_DOWNLEVEL_SERVER
12151
The server did not return any headers.
ERROR_HTTP_HEADER_ALREADY_EXISTS
12155
The header could not be added because it already exists.
ERROR_HTTP_HEADER_NOT_FOUND
12150
The requested header could not be located.
ERROR_HTTP_INVALID_HEADER
12153
The supplied header is invalid.
ERROR_HTTP_INVALID_QUERY_REQUEST
12154
The request made to HttpQueryInfo is invalid.
ERROR_HTTP_INVALID_SERVER_RESPONSE
12152
The server response could not be parsed.
ERROR_HTTP_NOT_REDIRECTED
12160
The HTTP request was not redirected.
ERROR_HTTP_REDIRECT_FAILED
12156
The redirection failed because either the scheme changed (for example, HTTP to FTP) or all attempts made to redirect failed (default is five attempts).
ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION
12168
The redirection requires user confirmation.
ERROR_INTERNET_ASYNC_THREAD_FAILED
12047
The application could not start an asynchronous thread.
ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT
12166
There was an error in the automatic proxy configuration script.
ERROR_INTERNET_BAD_OPTION_LENGTH
12010
The length of an option supplied to InternetQueryOption or InternetSetOption is incorrect for the type of option specified.
ERROR_INTERNET_BAD_REGISTRY_PARAMETER
12022
A required registry value was located but is an incorrect type or has an invalid value.
ERROR_INTERNET_CANNOT_CONNECT
12029
The attempt to connect to the server failed.
ERROR_INTERNET_CHG_POST_IS_NON_SECURE
12042
The application is posting and attempting to change multiple lines of text on a server that is not secure.
ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED
12044
The server is requesting client authentication.
ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP
12046
Client authorization is not set up on this computer.
ERROR_INTERNET_CONNECTION_ABORTED
12030
The connection with the server has been terminated.
ERROR_INTERNET_CONNECTION_RESET
12031
The connection with the server has been reset.
ERROR_INTERNET_DIALOG_PENDING
12049
Another thread has a password dialog box in progress.
ERROR_INTERNET_DISCONNECTED
12163
The Internet connection has been lost.
ERROR_INTERNET_EXTENDED_ERROR
12003
An extended error was returned from the server. This is typically a string or buffer containing a verbose error message. Call InternetGetLastResponseInfo to retrieve the error text.
ERROR_INTERNET_FAILED_DUETOSECURITYCHECK
12171
The function failed due to a security check.
ERROR_INTERNET_FORCE_RETRY
12032
The function needs to redo the request.
ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED
12054
The requested resource requires Fortezza authentication.
ERROR_INTERNET_HANDLE_EXISTS
12036
The request failed because the handle already exists.
ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR
12039
The application is moving from a non-SSL to an SSL connection because of a redirect.
ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR
12052
The data being submitted to an SSL connection is being redirected to a non-SSL connection.
ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR
12040
The application is moving from an SSL to an non-SSL connection because of a redirect.
ERROR_INTERNET_INCORRECT_FORMAT
12027
The format of the request is invalid.
ERROR_INTERNET_INCORRECT_HANDLE_STATE
12019
The requested operation cannot be carried out because the handle supplied is not in the correct state.
ERROR_INTERNET_INCORRECT_HANDLE_TYPE
12018
The type of handle supplied is incorrect for this operation.
ERROR_INTERNET_INCORRECT_PASSWORD
12014
The request to connect and log on to an FTP server could not be completed because the supplied password is incorrect.
ERROR_INTERNET_INCORRECT_USER_NAME
12013
The request to connect and log on to an FTP server could not be completed because the supplied user name is incorrect.
ERROR_INTERNET_INSERT_CDROM
12053
The request requires a CD-ROM to be inserted in the CD-ROM drive to locate the resource requested.
ERROR_INTERNET_INTERNAL_ERROR
12004
An internal error has occurred.
ERROR_INTERNET_INVALID_CA
12045
The function is unfamiliar with the Certificate Authority that generated the server's certificate.
ERROR_INTERNET_INVALID_OPERATION
12016
The requested operation is invalid.
ERROR_INTERNET_INVALID_OPTION
12009
A request to InternetQueryOption or InternetSetOption specified an invalid option value.
ERROR_INTERNET_INVALID_PROXY_REQUEST
12033
The request to the proxy was invalid.
ERROR_INTERNET_INVALID_URL
12005
The URL is invalid.
ERROR_INTERNET_ITEM_NOT_FOUND
12028
The requested item could not be located.
ERROR_INTERNET_LOGIN_FAILURE
12015
The request to connect and log on to an FTP server failed.
ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY
12174
The MS-Logoff digest header has been returned from the Web site. This header specifically instructs the digest package to purge credentials for the associated realm. This error will only be returned if INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY has been set.
ERROR_INTERNET_MIXED_SECURITY
12041
The content is not entirely secure. Some of the content being viewed may have come from unsecured servers.
ERROR_INTERNET_NAME_NOT_RESOLVED
12007
The server name could not be resolved.
ERROR_INTERNET_NEED_MSN_SSPI_PKG
12173
Not currently implemented.
ERROR_INTERNET_NEED_UI
12034
A user interface or other blocking operation has been requested.
ERROR_INTERNET_NO_CALLBACK
12025
An asynchronous request could not be made because a callback function has not been set.
ERROR_INTERNET_NO_CONTEXT
12024
An asynchronous request could not be made because a zero context value was supplied.
ERROR_INTERNET_NO_DIRECT_ACCESS
12023
Direct network access cannot be made at this time.
ERROR_INTERNET_NOT_INITIALIZED
12172
Initialization of the WinINet API has not occurred. Indicates that a higher-level function, such as InternetOpen, has not been called yet.
ERROR_INTERNET_NOT_PROXY_REQUEST
12020
The request cannot be made via a proxy.
ERROR_INTERNET_OPERATION_CANCELLED
12017
The operation was canceled, usually because the handle on which the request was operating was closed before the operation completed.
ERROR_INTERNET_OPTION_NOT_SETTABLE
12011
The requested option cannot be set, only queried.
ERROR_INTERNET_OUT_OF_HANDLES
12001
No more handles could be generated at this time.
ERROR_INTERNET_POST_IS_NON_SECURE
12043
The application is posting data to a server that is not secure.
ERROR_INTERNET_PROTOCOL_NOT_FOUND
12008
The requested protocol could not be located.
ERROR_INTERNET_PROXY_SERVER_UNREACHABLE
12165
The designated proxy server cannot be reached.
ERROR_INTERNET_REDIRECT_SCHEME_CHANGE
12048
The function could not handle the redirection, because the scheme changed (for example, HTTP to FTP).
ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND
12021
A required registry value could not be located.
ERROR_INTERNET_REQUEST_PENDING
12026
The required operation could not be completed because one or more requests are pending.
ERROR_INTERNET_RETRY_DIALOG
12050
The dialog box should be retried.
ERROR_INTERNET_SEC_CERT_CN_INVALID
12038
SSL certificate common name (host name field) is incorrect—for example, if you entered www.server.com and the common name on the certificate says www.different.com.
ERROR_INTERNET_SEC_CERT_DATE_INVALID
12037
SSL certificate date that was received from the server is bad. The certificate is expired.
ERROR_INTERNET_SEC_CERT_ERRORS
12055
The SSL certificate contains errors.
ERROR_INTERNET_SEC_CERT_NO_REV
12056
ERROR_INTERNET_SEC_CERT_REV_FAILED
12057
ERROR_INTERNET_SEC_CERT_REVOKED
12170
SSL certificate was revoked.
ERROR_INTERNET_SEC_INVALID_CERT
12169
SSL certificate is invalid.
ERROR_INTERNET_SECURITY_CHANNEL_ERROR
12157
The application experienced an internal error loading the SSL libraries.
ERROR_INTERNET_SERVER_UNREACHABLE
12164
The Web site or server indicated is unreachable.
ERROR_INTERNET_SHUTDOWN
12012
WinINet support is being shut down or unloaded.
ERROR_INTERNET_TCPIP_NOT_INSTALLED
12159
The required protocol stack is not loaded and the application cannot start WinSock.
ERROR_INTERNET_TIMEOUT
12002
The request has timed out.
ERROR_INTERNET_UNABLE_TO_CACHE_FILE
12158
The function was unable to cache the file.
ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT
12167
The automatic proxy configuration script could not be downloaded. The INTERNET_FLAG_MUST_CACHE_REQUEST flag was set.
ERROR_INTERNET_UNRECOGNIZED_SCHEME
12006
The URL scheme could not be recognized, or is not supported.
ERROR_INVALID_HANDLE
The handle that was passed to the API has been either invalidated or closed.
Header:  Declared in Winerror.h
ERROR_MORE_DATA
More data is available.
Header:  Declared in Winerror.h
ERROR_NO_MORE_FILES
No more files have been found.
Header:  Declared in Winerror.h
ERROR_NO_MORE_ITEMS
No more items have been found.
Header:  Declared in Winerror.h

[출처] Internet Error Codes|작성자

'develop > windows' 카테고리의 다른 글

BOOST 컴파일 옵션  (0) 2010.02.03
메모리릭 발생 위치에 Breakpoint 설정하기  (0) 2010.02.03
MS Patch API  (0) 2010.02.03
File Drag & Drop  (0) 2010.02.03
Remote Debugging  (0) 2010.02.03

+ Recent posts