ãã ãããããŒãžã³ãŒãã«ã¯ããã®å©ç¹ã«çŽæ¥ç±æ¥ããéåžžã«æ·±å»ãªäžè¬çãªãã©ãŠãã1ã€ãããŸããæåã¯ããããŒãžã³ãŒãã¯ãåäœã匷å¶ãããã¢ã³ãããŒãžç°å¢ãšäºææ§ããããŸããã ããã°ã©ããŒã®ç掻ã楜ã«ãããã¯ã·ã³ã°ãã¡ã¢ãªãã£ãŒã«ããçŽæ¥ã¢ãã¬ã¹æå®ã®æ¬ åŠãããã³ãã®ä»ã®ããªãã¯ã¯ããããŒãžã³ãŒããšã¢ã³ãããŒãžã³ãŒãã®çžäºäœçšãåé¡ã«ãªããšããäºå®ã«ã€ãªãããŸãã
ãã ãã解決ã§ããªãåé¡ã¯ãããŸããïŒaãšã¯ããŒããŒã§ãïŒã ä»æ¥ã¯ããããŒãžãã³ãŒããšã¢ã³ãããŒãžãã³ãŒãéã®çžäºäœçšãæŽçããå¯èœæ§ã®æŠèŠã説æããŸããã å€ãã®CïŒããã³ç¹ã«VB.NETããã°ã©ããŒã¯ãããæããŠããŸãããå®éã«ã¯å¿é ããå¿ èŠã¯ãããŸããã åå¿è ã ããèå³ãæã€æãåå§çãªæ¹æ³ããå§ããŸãïŒãããã£ãŠãçµéšè±å¯ãª.NETãªãªã«ãã¯æ確ãªè¯å¿ãæã£ãŠèšäºã®æåã®éšåãã¹ãããã§ããŸãïŒããããèµ·ãããŸãïŒã åœç¶ãããããã®å Žåã«å ·äœçãªäŸã瀺ãããŸãããããããéãŠãµã®ã¯ç§èªèº«ã®ãµã€ã¯ãªã³ã°ã«ã€ããŠæããŠãããŸãã 䞊è¡ããŠãVSTOãšWindows Shellã䜿çšããéã®èœãšãç©Žã«ã€ããŠããã€ã説æããŸãã
ãããŒãžãããã¢ã³ãããŒãžã³ãŒããæäœããŸãã
.NETã®èŠ³ç¹ããèŠããã®ç¶æ³ã®æšæºçãªã¡ã«ããºã ã¯ãMicrosoftãæäŸãã3ã€ã®ã¡ã«ããºã ã§ãããããã¯ããã©ãããã©ãŒã åŒã³åºãïŒP /åŒã³åºãïŒãCOMçžäºéçšãããã³å®å šã§ã¯ãããŸããã
äžè¬çãªèŠå
ã¢ã³ãããŒãžã³ãŒããæäœãããã¹ãŠã®æ¹æ³ã«ã¯ãååã«æ·±å»ãªäžé£ã®å ±éã®æ¬ ç¹ãããã泚æãæã䟡å€ããããæ€èšãã䟡å€ããããŸãã
- ã¢ã³ãããŒãžã³ãŒãã®åŒã³åºãã¯ãã¢ããªã±ãŒã·ã§ã³ãããã§ã¹ãã§æäœã®æå¹æ§ãå€æããå¿ èŠãããå±éºãªæäœã§ãã ããã«ãããç¹ã«ClickOnceã¡ãœããã®å Žåããããã€æã«åé¡ãçºçããããšããããŸãã
- ã¢ã³ãããŒãžã³ãŒãã¯å®å šã§ã¯ãªããCLRãã§ãã¯ã«åæ Œããã.NETãã«ãã€ã³ã»ãã¥ãªãã£ã·ã¹ãã ã®ã«ãŒã«ã«åŸããŸããã ã¡ãœããã§ããã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãå¶éãããã»ãã¥ãªãã£ã«ãŒã«ãå®çŸ©ãããã¡ã€ã«ã§æ©èœããã¢ã³ãããŒãžæ©èœã䜿çšããŠããå Žåãåé¡ãªãæ©èœããŸãã
ãã®æ å ±ã念é ã«çœ®ããŠããããæäœããæ¹æ³ã®æ€èšã«ç§»ããŸãã
P /åŒã³åºã
ããã·ãŒãžã£åŒã³åºãã¡ã«ããºã ã¯ãDLLãã¡ã€ã«ã«å«ãŸããæ©èœã«ã¢ã¯ã»ã¹ããããã«èšèšãããŠããŸãã
ãã€å¿ èŠã§ããïŒ
.NET Frameworkã©ã€ãã©ãªã«ããè±å¯ãªæ©èœã«ãããããããããã䜿çšããŠããã€ãã®ããšãè¡ãããšã¯åºæ¬çã«äžå¯èœã§ãã å人çã«ããã¡ã€ã«ãšååä»ããã€ãã®å¿ é ã¬ãã«ã管çããã«ã¯ãP / Invokeæ©èœãå¿ èŠã§ããã åé¡ã¯ã.NETã¢ã¯ã»ã¹å¶åŸ¡ã¯ã©ã¹ãå¿ é ã¬ãã«ã®èšè¿°åãå«ãSDDLæååãç解ããªãããããããã®é¢æ°ã«çŽæ¥ã¢ã¯ã»ã¹ããå¿ èŠããã£ãããšã§ãã
ã©ã®ããã«èŠããŸããïŒ
ç°¡åã§ãã éçã¯ã©ã¹ã宣èšãããšã¯ã¹ããŒããããã®ã®åââåã§éçé¢æ°ããã®äžã«èšè¿°ããé©åãªãã©ã¡ãŒã¿ãŒã®ãªã¹ããäœæããDLLã®ååã§DllImportå±æ§ãåæãã楜ãã¿ãŸãã
äŸïŒ PlaySoundé¢æ°ã®ã€ã³ããŒã
public static class Win32
{
[DllImport( "winmm" )]
public static extern int PlaySound( string szSound, IntPtr hModule, int flags);
}
* This source code was highlighted with Source Code Highlighter .
äž»ãªåé¡
- ããŸããŸãªãã³ãã«ã®è»¢éã ãã®åé¡ã¯æ¬¡ã®ããã«è§£æ±ºãããŸãã ã»ãšãã©ã®ãªããžã§ã¯ãã«ã¯ãé¢æ°ã«æž¡ãããšãã§ããHandleãã£ãŒã«ãããããŸãã ååšããªãå Žåã¯ããªããžã§ã¯ãã®SafeHandleãååŸããDangerousæäœãä»ããŠIntPtrãèŠæ±ããããšãã§ããŸãã
- æ§é äœãé¢æ°ãã€ã³ã¿ãŒãããã³ãã®ä»ã®éèŠãªãã®ãæž¡ããŸãã å®éãããŒã¿ãããŒã·ã£ãªã³ã°ããæ¹æ³ãç解ããŠããªãçŽ äººã«ãšã£ãŠãããã¯éåžžã«å€§ããªåé¡ã§ãã 幞ããªããšã«ãäžè¬çã«äœ¿çšãããæ©èœã®åºæ¬çãªå®çŸ©ãå«ãpinvoke.net/ãµã€ãããããŸãã ãã®ãµã€ãã¯ãŠã£ããšã³ãžã³äžã«æ§ç¯ãããŠãããã·ã¹ãã æ©èœãå¿ èŠãªå Žå-99ïŒ ãããã«æ£ããå®çŸ©ããããŸãã
COMçžäºéçš
ãããŒãžã³ãŒãã§COMã³ã³ããŒãã³ãã䜿çšã§ããããã«ããæ¬åœã«åŒ·åãªã¡ã«ããºã ã
ãã€å¿ èŠã§ããïŒ
æ·±å»ãªãããžã§ã¯ãã§ã¯-å€ãã®å Žåååã§ãã å®éã®ãšãããã·ã¹ãã ã®ç¹å®ã®éšåã¯ãC ++ãDelphiããŸãã¯ïŒç¥èãªïŒVisual BasicïŒ.NETã§ã¯ãªããã®ïŒã§èšè¿°ïŒãŸãã¯æ¢ã«èšè¿°ïŒã§ããŸãã ããã«ãWin32èªäœã¯COMäžã«æ§ç¯ãããŠããããããã®ã¡ã«ããºã ãå«ããæ©èœãžã®ã¢ã¯ã»ã¹ãæäŸãããŸãã åé¡ãªã䜿çšããã«ã¯ãã³ã³ããŒãã³ãã¢ãã«ãšCOMçžäºéçšæ©èœã䜿çšããå¿ èŠããããŸãã
ã©ã®ããã«èŠããŸããïŒ
ç°¡åã§ãã ãªããžã§ã¯ããèªååããµããŒãããŠããå Žåãçžäºéçšããã»ã¹ã¯åé¡ãªãééããŸããããã§ãªãå Žåã¯ãèŠåŽããå¿ èŠããããŸãã
COMãªããžã§ã¯ããã¢ã»ã³ããªã«è¿œå ããã«ã¯ããããžã§ã¯ãã®åç §ãä»ããŠãã©ã°ã€ã³ããã ãã§ãã ã¢ã³ãããŒãžããããããŒãžããžããŸãã¯ãã®éã«ãã©ã¡ãŒã¿ãŒãããŒã·ã£ãªã³ã°ããã©ã€ãã©ãªãŒãèªåçã«äœæãããŸãã åœç¶ãMAPIãADãªã©ã®è€éãªãªããžã§ã¯ãã®å Žåããã®ãããªçžäºéçšã¯æ©èœããŸããããã®å ŽåãåŸã§èª¬æããã¢ãããŒãã䜿çšããå¿ èŠããããŸãã
ã³ã³ããŒãã³ããæ¥ç¶ãããããªããžã§ã¯ãã®æ°ããã€ã³ã¹ã¿ã³ã¹ãäœæãããã€ãã£ãã®.NETãªããžã§ã¯ãã§ãããã®ããã«äœ¿çšããŸãã
IComExampleInterface iInt = new ComExampleInterface();
* This source code was highlighted with Source Code Highlighter .
ããããã€ã³ã¿ãŒãã§ã€ã¹ãªããžã§ã¯ãã¯äœæããŠããŸããã å®éããã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒããã¯ã¡ã¿ããŒã¿ã§ç¢ºèªã§ããŸãïŒã«ã¯ãããã©ã«ãã®ã³ã¯ã©ã¹ãšåŒã°ããå±æ§ããããäœæãããã®ã¯ãã®ãªããžã§ã¯ãã§ãã
ã芧ã®ãšãããããã¯éåžžã«åçŽã§ããããŸã£ããæããã®ã§ã¯ãããŸããã
äž»ãªåé¡
- è€éãªãªããžã§ã¯ãã®çžäºéçšäžã®ãšã©ãŒã .NETã¯å šèœã§ã¯ãªããããç¹å®ã®ããŒã¿ãã©ã®ããã«ããŒã·ã£ãªã³ã°ãããããåžžã«æ£ããå€æã§ãããšã¯éããŸããã ãã®å ŽåããããŒã·ã£ãªã³ã°ãæ瀺çã«èŠå®ããå¿ èŠãããç¶æ³ã«ãããŸãã
- .NETã«ã¯ãæšæºã€ã³ã¿ãŒãã§ã€ã¹ã®å€ãã®å®çŸ©ããããŸããã ããšãã°ãIUnknownãIDispatchãIDictionaryããŸãã¯IStreamã ãããã®å®çŸ©ã¯ãæäœæ¥ã§èšè¿°ãããã.NETã«ãŒãã«ã®è žããReflectorã䜿çšããŠåŒãè£ãããšãã§ããŸãïŒããã«ãããŸãïŒã
- åãååã®ãªããžã§ã¯ãã®éäºææ§NETããã³Win32ã ããšãã°ã.NETã®èŸæžã¯Win32 Scripting.Dictionaryãªããžã§ã¯ããšãŸã£ããåãã§ã¯ãããŸããã ãã®ãããIStreamãªã©ã§ãåæ§ã«ãæåããå®ãããäœæ¥ãè¡ãã«ã¯ãã©ãããŒãäœæããŠãšã¯ã¹ããŒãããå¿ èŠããããŸãã ã©ããã£ãŠïŒ ããšãã°ãã©ãããŒãäœæããComExportã¡ãœããã䜿çšããŠãšã¯ã¹ããŒãããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
å®å šã§ãªãã³ã³ããã¹ãã
å人çã«ã¯äžå¿ èŠãªã¢ã¿ããºã ã®ããã§ãããããã¯ç§ã®å人çãªæèŠã§ãã
ãã€å¿ èŠã§ããïŒ
ã»ãšãã©ã®å Žåãå®å šã§ãªãã¡ãœããã®äœ¿çšã¯ããã®ãããªã¢ãããŒããã³ãŒãã®å®è¡æéãççž®ãããšããäºå®ã«ãã£ãŠåæ©ä»ããããŸããç¹ã«ãåçŽãªã¿ã€ãã®å€§éã®ããŒã¿ãæ±ãå Žå-ãã®å Žåããã¯ã·ã³ã°/ã¢ã³ãã¯ã·ã³ã°ã®ã³ã¹ããéåžžã«å€§ãããªããŸãã ãã ããå®éã«ç€ºãããŠããããã«ãå®éã«ã¯ã.NETã§äœæ¥ããããã°ã©ããŒã¯DataSetã®ãããªè€éãªãªããžã§ã¯ãã§ãŸããŸãåäœããããã«å®å šã§ã¯ãªãã¢ããªã±ãŒã·ã§ã³ãããã§ã¹ãã«ã¯ãå®å šã§ãªãã³ãŒããå®è¡ããç¹å¥ãªæš©éãå¿ èŠã§ãã å人çã«ã¯ãå®å šã§ãªããã®ã䜿çšããå¿ èŠã¯ãããŸããã§ãã-è€éãªããŒã¿åãããŒã·ã£ãªã³ã°ããã¿ã¹ã¯ã§ãããIntPtrã䜿çšããéçMarshalã¯ã©ã¹ã䜿çšããŠç°¡åã«å®è¡ã§ããŸãã
ã©ã®ããã«èŠããŸããïŒ
unsafeããŒã¯ãŒããã¡ãœããã®èª¬æã«è¿œå ãããŸãã
public static unsafe void UnsafeMethod( char * chararray)
* This source code was highlighted with Source Code Highlighter .
åæã«ãC ++ã®å Žåãšåæ§ã«ãã¢ãã¬ã¹ã«ã¢ã¯ã»ã¹ããæ¹æ³ãšãªã³ã¯ãæäœããã¡ã«ããºã ãã¡ãœããã§äœ¿çšå¯èœã«ãªããŸãã
å®å šã§ãªãã³ãŒãã¯ç®¡çããããŸãŸã§ãããã©ã³ã¿ã€ã ãã§ãã¯ã®åæ°ã¯åçŽã«æžå°ããããšãèŠããŠããå¿ èŠããããŸãã ãããã£ãŠã圌ã¯ç§ãã¡ã®ãããã¯ãšã¯ãŸã£ããé¢ä¿ããããŸãããããã®äœæ¥æ¹æ³ã«èšåããããšã¯äžå¿ èŠã§ã¯ãããŸããã
äž»ãªåé¡
- äž»ãªãã®ãå«ããã¢ã³ãããŒãžã³ãŒãã®å€ãã®ç¶æ¿ãããåé¡ã®åºçŸ-ãããã¡ãªãŒããŒãããŒã
ã¢ã³ãããŒãžãã®ãããŒãžã³ãŒããæäœããŸãã
ã¢ã³ãããŒãžã³ãŒãã§ã®äœæ¥ãå€ããå°ãªããããŸãæ§æãããŠããå Žåãéããã»ã¹-ã¢ã³ãããŒãžã³ãŒããã.NETã¢ã»ã³ããªã«ã¢ã¯ã»ã¹ãããšãèšå€§ãªæ°ã®åé¡ãçºçããŸãã ãããã®æ¬è³ªãç解ããããã«ããã®ãããªã¢ãããŒããå®è£ ããããã«ãã€ã¯ããœããã«ãã£ãŠææ¡ãããã¡ã«ããºã ãèæ ®ããŠãã ããã
ãã®ã¡ã«ããºã ã¯ComExportãšåŒã°ãã管çç°å¢ãªããžã§ã¯ããéåžžã®COMãªããžã§ã¯ãã§ãããã®ããã«ãšã¯ã¹ããŒãã§ããŸãã ãªããžã§ã¯ãããšã¯ã¹ããŒãããã«ã¯ããã®ãªããžã§ã¯ãã®ComVisibleïŒtrueïŒå±æ§ãå®çŸ©ããCLSIDãProgIDãDefaultInterfaceãèšå®ãããšã¯ã¹ããŒãããããã¹ãŠã®ã€ã³ã¿ãŒãã§ã€ã¹ã«å¯ŸããŠåæ§ã®æäœãå®è¡ããå¿ èŠããããŸãã ãšã¯ã¹ããŒãããããã¹ãŠã®ã€ã³ã¿ãŒãã§ã€ã¹ã®CLSIDãšIIDãããã³ãããã®ããŒãžã§ã³ãã³ãŒãå ã§æ±ºå®ããããšãç¹ã«éèŠã§ã-ãããªããã°ãã¢ããªã±ãŒã·ã§ã³ãéçºãããšãã«ãã€ã³ã¿ãŒãã§ã€ã¹ã®å€æŽã¯æ°ããCLSIDãšIIDã®å®çŸ©ã«ã€ãªãããããŒãžã§ã³ã¯åžžã«ããŠã³ããŒããããŸã
[ComVisible( true )]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[ Guid ( "5095474B-5273-44ae-A220-9E3820D2EEDC" )]
[ProgId( "COM.Export.Test.1" )]
[ComDefaultInterface( typeof (IDefaultInterface))]
public class Coclass {...}
* This source code was highlighted with Source Code Highlighter .
ãã ãããã¹ãŠããã©è²ã§ããã°ãåé¡ã¯ãããŸããã çŸå®ã¯ãã£ãšæ²ããããã®ã¢ãããŒãã䜿çšããã®ãé£ãããããããããªãå€ãã®åé¡ããããŸãã
- .NETã䜿çšããŠèšè¿°ãããCOMã¯ãregsvr32ã«ç»é²ããå¿ èŠã¯ãããŸããããregasmã«ç»é²ããå¿ èŠããããããã€ã³ã¹ããŒã«ã€ã³ã¹ããŒã©ãŒãããå°é£ã«ãªããŸãã
- äœæãããã³ã³ããŒãã³ãã¯ãïŒå°ãªããšãäžæããŒã§ïŒçœ²åããããgacutilã䜿çšããŠGACã«ç»é²ããå¿ èŠããããŸãã GACã«ç»é²ããã«ã¯ãWindows Vistaã®ç®¡çè æš©éãå¿ èŠã§ãã
- ComExportã¡ã«ããºã ã䜿çšããŠã¢ãŠãããã»ã¹COMãäœæããããšã¯ã§ããŸããã
- ãã®ãããªã³ã³ããŒãã³ãã䜿çšãããšãCLRã¯ãããåŒã³åºãããã»ã¹ã®ã¢ãã¬ã¹ç©ºéã«ããŒããããŸãã
æåŸã®2ã€ã®ãã€ã³ãã«ã€ããŠè©³ãã説æããŸãã ã¢ãŠãããã»ã¹COMãäœæã§ããªãã®ã¯ãªãã§ããïŒ
ç°¡åã«èšãã°ãäºå®ã¯.NETã¢ããªã±ãŒã·ã§ã³ãã¢ã»ã³ããªã§ãããmainé¢æ°ã«çŽæ¥ç»é²ãããŠãããšãã«å®è¡ããå¿ èŠãªããåçŽãªã¢ã»ã³ããªDLLãšããŠèªåèªèº«ãæ¥ç¶ã§ããããšã§ãã ãŸããC ++ãªã©ã§ã¢ãŠãããã»ã¹COMãèšè¿°ããå Žåãã·ã¹ãã ã®äžè¬çãªåäœã¯ãã¢ããªã±ãŒã·ã§ã³ãããŒããããã®ãåŸ ã£ãŠããããšã¯ã¹ããŒãããããªããžã§ã¯ããROTã«ç»é²ãããŸã§åŸ æ©ãã次ã«ã¯ã©ã¹ãã¡ã¯ããªã®èŠæ±ã§ãããæå¹ã«ããããšã§ã..NETã®å Žåãã¢ããªã±ãŒã·ã§ã³éå§ããŸãã-ã¢ã»ã³ããªã¯ãåã«äžéãä»ããŠçŸåšã®ããã»ã¹ãDLLãšããŠçµåããŸãã ãããã£ãŠãã¢ã»ã³ããªã§ã·ã³ã°ã«ãã³ãŸãã¯éçã¯ã©ã¹ãå®çŸ©ããŠããwin32ã®ããã»ã¹ã¯äºãã«åé¢ãããŠãããããããã»ã¹ããšã«ç°ãªããŸãã
ç§ã®ç¥ãéããDCOMã䜿çšããŠãã®åé¡ã解決ã§ããŸããã.NETã§ãã®ãããªã³ã³ããŒãã³ããäœæããããšã¯ããªãã®å°é£ã䌎ããä»ã®å€ãã®åé¡ãçºçãããããç§ã¯å人çã«ãã®ã¢ãããŒãã䜿çšããŸããã§ããã
ããããããã»ã¹ã®ã¢ãã¬ã¹ç©ºéã«CLRãããŒãããããšã®åé¡ã¯äœã§ããïŒ çµå±ã.NETã¯ã¢ã»ã³ããªã®ããŒãžã§ã³ç®¡çããµããŒãããŠããããããã«ããŠããã©ã€ãã©ãªã«å¯Ÿå¿ããmscorlibã®ããŒãžã§ã³ã䜿çšãããŸãã
ããã»ã©åçŽã§ã¯ãããŸããã .NET Framework 3.5ã§èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ã§.NET Framework 1.1ã䜿çšããŠèšè¿°ãããCOMãããŒãããããšãããšãåé¡ãçºçããŸãã åãã©ã€ãã©ãªã®2ã€ã®ããŒãžã§ã³ãåãã¢ãã¬ã¹ããã»ã¹ã«åæã«ååšããããšã¯ã§ããŸããã ã»ãšãã©ã®å Žåããã¹ãŠãèœã¡ãŸãã
ç¹ã«ããã®æç¹ã§ã.NETã䜿çšããã·ã§ã«æ¡åŒµãåå空éæ¡åŒµãªã©ã®èšè¿°ãçŽæ¥çŠæ¢ããŸãã çµå±ã®ãšããããã¡ã€ã«ãä¿åãŸãã¯éãããã®ãã€ã¢ãã°ããã¯ã¹ã¯ãã¢ã³ãããŒãžã³ãŒããŸãã¯ãããŒãžã³ãŒãã®ãããã®ã³ãŒãããã§ãåŒã³åºãããšãã§ããŸãã
ããã«ãæ£çŽãªãšãããComExportã¯æéã®ã¡ã«ããºã ã§ã¯ãããŸããã CLRã®ããŠã³ããŒãã¯ãããªãé·ãããã»ã¹ã§ãã ããã¯ãVisual Studio Tools for Officeã䜿çšããŠMicrosoft Officeã¢ããªã±ãŒã·ã§ã³ãžã®ã¢ãã€ã³ãéçºããå Žåã«ç¹ã«é¡èã§ãã ãã¹ãŠã®éçºåé¡ã®äžèœè¬ãšããŠèšç»ãããŠãããã®ããŒã«ã¯ãVSTOã¢ãã€ã³ãæ¥ç¶ãããŠãããšãã¢ããªã±ãŒã·ã§ã³ã®ããŒãæéãå¹³å20ã100ç§å¢å ãããšãã1ã€ã®åçŽãªåé¡ã§ç«ã¡åŸçããŸããã ãããMS Outlookã«ãšã£ãŠããã»ã©éèŠã§ã¯ãªãå Žåã顧客ã¯é·ãéããããã§ããªããè¿œããããWordãŸãã¯Excelã®ããŠã³ããŒãæéãå¢ãããŸãã
èŠããŠãããŠãã ãã-.NETã䜿çšããŠã·ã§ã«æ¡åŒµãå®è£ ããããšã¯ã§ããŸããã MSDNã§åªããããå§ãããŸããããšãããã€ã¯ããœããã®è©±ãèããªãã§ãã ãããäžå¯èœã§ãã 決ããŠã ãã€ã³ãã
ãã®åé¡ã«ã¯2ã€ã®è§£æ±ºçããããŸãã
- CLRå¶éã解é€ããªããããã·ãªããžã§ã¯ãã®äœ¿çšã
- ã«ã¹ã¿ã ãã©ã³ã¹ããŒãã䜿çšããŠããããŒãžã³ãŒããšã¢ã³ãããŒãžã³ãŒãéã§éä¿¡ããŸãã
WCFã¡ã«ããºã ãä»ããŠAPIããšã¯ã¹ããŒãããASP.NETã§èšè¿°ããããµãŒããŒã«ã¢ã¯ã»ã¹ããåå空éæ¡åŒµãèšè¿°ããã¿ã¹ã¯ããã£ããšããåé¡ã¯æ¬åœã«æãã€ããŸããã ãœã±ãããä»ããŠæ¥ç¶ã確ç«ããWindowsèªèšŒã¡ã«ããºã ãå®è£ ããSOAPã解æãããããŒãžC ++ãäžèšã®åé¡ã®äœ¿çšãçŠæ¢ããããšã¯æã¿ãŸããã§ããã ãã®åŸã次ã®ã¢ãŒããã¯ãã£ãèªçããŸããããã¹ãŠã®Windowsã·ã§ã«ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããååä»ããã€ããã£ãã«ã䜿çšããŠããŒã«ã«ïŒãŸãã¯ãªã¢ãŒãïŒãã·ã³ã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ã«ã¢ã¯ã»ã¹ããC ++ã§èšè¿°ãããåå空éæ¡åŒµã§ãã ãã®ã¢ãããŒãããã.NET Pipe RPCãšåŒã°ãããã®çš®ã®ã¢ããªã±ãŒã·ã§ã³ã®å ±éã¢ãŒããã¯ãã£ãçãŸããŸããã ã¢ãããŒãã¯éåžžã«äžè¬çã§ãããç§ã®Wordã§ã¯ãã®èšäºã®ãµã€ãºã¯ãã§ã«5ããŒãžã§ãã®ã§ãç§ã¯çµããã§ããããŒããŒãºããã®ãããã¯ã«èå³ãããå Žåã¯ãã³ã¡ã³ããæžããŠãå®è£ äŸã§ãã®ã¢ãããŒãã«ã€ããŠè©³ãã説æããŸãã