{"id":9,"date":"2009-04-10T06:21:35","date_gmt":"2009-04-10T05:21:35","guid":{"rendered":"http:\/\/ree7.fr\/blog\/?p=9"},"modified":"2015-09-17T11:13:31","modified_gmt":"2015-09-17T10:13:31","slug":"faire-discuter-c-et-cc-et-dautres","status":"publish","type":"post","link":"http:\/\/www.ree7.fr\/blog\/2009\/04\/faire-discuter-c-et-cc-et-dautres\/","title":{"rendered":"Faire discuter C# et C\/C++ (et d&rsquo;autres)"},"content":{"rendered":"<p style=\"text-align: center;\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-11\" title=\"Arrrgh !\" src=\"http:\/\/ree7.fr\/blog\/wp-content\/uploads\/2009\/04\/01.png\" alt=\"Arrrgh !\" width=\"451\" height=\"232\" srcset=\"http:\/\/www.ree7.fr\/blog\/wp-content\/uploads\/2009\/04\/01.png 451w, http:\/\/www.ree7.fr\/blog\/wp-content\/uploads\/2009\/04\/01-300x154.png 300w\" sizes=\"(max-width: 451px) 100vw, 451px\" \/><\/p>\n<p style=\"text-align: left;\">[ Guide non exhaustif r\u00e9alis\u00e9 lorsque j&rsquo;\u00e9tais encore stagiaire \ud83d\ude09 ]<\/p>\n<p style=\"text-align: left;\">Cette exception m&rsquo;a donn\u00e9 un peu de fil \u00e0 retordre, je vais donc partager ma solution avec vous.<br \/>\nDans le cadre d&rsquo;un projet C#, il arrive qu&rsquo;on ait besoin d&rsquo;utiliser des libraires (.DLL) non manag\u00e9es. Pour l&rsquo;imp\u00e9trant ce n&rsquo;est pas forc\u00e9ment une balade de sant\u00e9&#8230;\u00a0 m\u00eame en demandant \u00e0 Google.<\/p>\n<p style=\"text-align: left;\">La probl\u00e9matique est la suivante : <strong>\u00ab\u00a0J&rsquo;ai trouv\u00e9 un source C++ g\u00e9nial sur le net qui fait exactement ce que je veux, et j&rsquo;aimerais l&rsquo;utiliser dans mon application C#.\u00a0\u00bb<\/strong><\/p>\n<p style=\"text-align: left;\">Ceci dit cet article peut vous aider si vous cherchez simplement \u00e0 utiliser une DLL quelconque en C# (sautez \u00e0 l&rsquo;\u00e9tape deux).<\/p>\n<p style=\"text-align: left;\"><!--more--><\/p>\n<ul>\n<li>\n<h2>Etape 1 (facile) : Je fais quoi de mon source C++ ?<\/h2>\n<p>Vous m&rsquo;aurez vu venir de loin&#8230; pour utiliser notre fameux code C++ nous allons cr\u00e9er une DLL.<br \/>\nPour cela, il faut cr\u00e9er un nouveau projet C++ au sein de la solution :<\/p>\n<ul>\n<li>Visual C++, Win32 Console Application, puis cocher DLL et Empty project dans l&rsquo;assistant de cr\u00e9ation<\/li>\n<\/ul>\n<p>Ensuite, on importe les sources dans VC++ (je pars du principe que vous savez utiliser C++ et VC++, le cas \u00e9ch\u00e9ant, vous devriez trouver moult aide sur le net).<\/p>\n<p>Enfin on ajoute au projet C++ un .h et .cpp pour l&rsquo;interface de notre DLL. Dans ce fichier on d\u00e9clare (.h) et \u00e9crit (.cpp) les fonctions que l&rsquo;on souhaite exposer dans la DLL (aka, utiliser depuis C#).<\/p>\n<p>Cela peut \u00eatre simplement des appels vers les fonctions qui vous interessent dans le code C++ ou, et l\u00e0 est l&rsquo;int\u00e9r\u00eat, des fonctions qui machent un peu le travail avant de passer la main \u00e0 C#.<br \/>\nPourquoi donc ? Car l&rsquo;on ne peut exporter une classe de C++ vers .Net, car pour l&rsquo;instant, le framework ne supporte pas <a href=\"http:\/\/www.programmersheaven.com\/2\/Calling-conventions\" target=\"_blank\">__thiscall<\/a>. Il va donc falloir se contenter de fonctions \u00e9changeant :<\/p>\n<ul>\n<li>Des types simples (bool, int, double&#8230;)<\/li>\n<li>Des pointeurs<\/li>\n<li>Des structs<\/li>\n<\/ul>\n<p><strong>Pour d\u00e9clarer une fonction export\u00e9e dans la DLL<\/strong>, il suffit de faire pr\u00e9c\u00e9der sa d\u00e9claration (dans le .h donc) de :\u00a0 __declspec(dllexport)<\/p>\n<p>Voici en exemple, un bout de mon code, brut de d\u00e9coffrage. Je cherche \u00e0 utiliser une classe : <em>voronoicell<\/em>, je vais donc l&rsquo;instancier dans ma DLL en tant variable globale statique (car je ne peux pas la manipuler en C#, du moins pas de fa\u00e7on simple), puis les fonctions que j&rsquo;expose dans la DLL me permettent de jouer avec la-dite instance de classe.<\/p>\n<p>Fichier dllinterface.h<\/p>\n<p><!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal<\/w:View> <w:Zoom>0<\/w:Zoom> <w:TrackMoves \/> <w:TrackFormatting \/> <w:PunctuationKerning \/> <w:ValidateAgainstSchemas \/> <w:SaveIfXMLInvalid>false<\/w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false<\/w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false<\/w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF \/> <w:LidThemeOther>EN-US<\/w:LidThemeOther> <w:LidThemeAsian>JA<\/w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE<\/w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables \/> <w:SnapToGridInCell \/> <w:WrapTextWithPunct \/> <w:UseAsianBreakRules \/> <w:DontGrowAutofit \/> <w:SplitPgBreakAndParaMark \/> <w:DontVertAlignCellWithSp \/> <w:DontBreakConstrainedForcedTables \/> <w:DontVertAlignInTxbx \/> <w:Word11KerningPairs \/> <w:CachedColBalance \/> <w:UseFELayout \/> <\/w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4<\/w:BrowserLevel> <m:mathPr> <m:mathFont m:val=\"Cambria Math\" \/> <m:brkBin m:val=\"before\" \/> <m:brkBinSub m:val=\"&#45;-\" \/> <m:smallFrac m:val=\"off\" \/> <m:dispDef \/> <m:lMargin m:val=\"0\" \/> <m:rMargin m:val=\"0\" \/> <m:defJc m:val=\"centerGroup\" \/> <m:wrapIndent m:val=\"1440\" \/> <m:intLim m:val=\"subSup\" \/> <m:naryLim m:val=\"undOvr\" \/> <\/m:mathPr><\/w:WordDocument> <\/xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState=\"false\" DefUnhideWhenUsed=\"true\" DefSemiHidden=\"true\" DefQFormat=\"false\" DefPriority=\"99\" LatentStyleCount=\"267\"> <w:LsdException Locked=\"false\" Priority=\"0\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Normal\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"heading 1\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 2\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 3\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 4\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 5\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 6\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 7\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 8\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 9\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 1\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 2\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 3\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 4\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 5\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 6\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 7\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 8\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 9\" \/> <w:LsdException Locked=\"false\" Priority=\"35\" QFormat=\"true\" Name=\"caption\" \/> <w:LsdException Locked=\"false\" Priority=\"10\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Title\" \/> <w:LsdException Locked=\"false\" Priority=\"1\" Name=\"Default Paragraph Font\" \/> <w:LsdException Locked=\"false\" Priority=\"11\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtitle\" \/> <w:LsdException Locked=\"false\" Priority=\"22\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Strong\" \/> <w:LsdException Locked=\"false\" Priority=\"20\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"59\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Table Grid\" \/> <w:LsdException Locked=\"false\" UnhideWhenUsed=\"false\" Name=\"Placeholder Text\" \/> <w:LsdException Locked=\"false\" Priority=\"1\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"No Spacing\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 1\" \/> <w:LsdException Locked=\"false\" UnhideWhenUsed=\"false\" Name=\"Revision\" \/> <w:LsdException Locked=\"false\" Priority=\"34\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"List Paragraph\" \/> <w:LsdException Locked=\"false\" Priority=\"29\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Quote\" \/> <w:LsdException Locked=\"false\" Priority=\"30\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Quote\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"19\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtle Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"21\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"31\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtle Reference\" \/> <w:LsdException Locked=\"false\" Priority=\"32\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Reference\" \/> <w:LsdException Locked=\"false\" Priority=\"33\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Book Title\" \/> <w:LsdException Locked=\"false\" Priority=\"37\" Name=\"Bibliography\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" QFormat=\"true\" Name=\"TOC Heading\" \/> <\/w:LatentStyles> <\/xml><![endif]--><!-- \/* Font Definitions *\/ @font-face {font-family:\"MS Mincho\"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-alt:\"\uff2d\uff33 \u660e\u671d\"; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face {font-family:\"Cambria Math\"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610611985 1073750091 0 0 159 0;} @font-face {font-family:\"\\@MS Mincho\"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} \/* Style Definitions *\/ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:\"\"; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:\"Calibri\",\"sans-serif\"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:\"MS Mincho\"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:\"Times New Roman\"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:\"MS Mincho\"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:\"Times New Roman\"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --><!-- [if gte mso 10]> <mce:style><! \/* Style Definitions *\/ table.MsoNormalTable {mso-style-name:\"Tableau Normal\"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:\"\"; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:\"Calibri\",\"sans-serif\"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} --> <!--[endif]--><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">#ifndef<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> _VORO_DLL_INTERFACE_<br \/>\n<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">#define<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> _VORO_DLL_INTERFACE_<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas; color: green;\">\/*<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: green;\"><br \/>\n* Voro++ DLL Interface<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: green;\"> * ====================<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: green;\"> * Port of the library Voro++ (only basic functions) as a DLL file, exposing some basics features.<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: green;\"><br \/>\n* Made in order to be integrated in a C# project.<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: green;\"><br \/>\n*<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: green;\"><br \/>\n* Author : Pierre BELIN, 2009.<br \/>\n*\/<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">namespace<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> VoroDLL<br \/>\n{<br \/>\nextern \u00ab\u00a0C\u00a0\u00bb<br \/>\n{<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"><span style=\"color: blue;\"><br \/>\n__declspec<\/span>(<span style=\"color: blue;\">dllexport<\/span>) <span style=\"color: blue;\">void<\/span> SCAInit(<span style=\"color: blue;\">double<\/span> xmin, <span style=\"color: blue;\">double<\/span> xmax, <span style=\"color: blue;\">double<\/span> ymin, <span style=\"color: blue;\">double<\/span> ymax, <span style=\"color: blue;\">double<\/span> zmin, <span style=\"color: blue;\">double<\/span> zmax);<br \/>\n<\/span> <span lang=\"FR\" style=\"font-size: 10pt; font-family: Consolas; color: blue;\">__declspec<\/span><span lang=\"FR\" style=\"font-size: 10pt; font-family: Consolas;\">(<span style=\"color: blue;\">dllexport<\/span>) <span style=\"color: blue;\">void<\/span> SCAPlane(<span style=\"color: blue;\">double<\/span> x, <span style=\"color: blue;\">double<\/span> y, <span style=\"color: blue;\">double<\/span> z, <span style=\"color: blue;\">double<\/span> rsq);<br \/>\n<\/span> <span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">__declspec<\/span><span style=\"font-size: 10pt; font-family: Consolas;\">(<span style=\"color: blue;\">dllexport<\/span>) <span style=\"color: blue;\">void<\/span> SCACleanup(<span style=\"color: blue;\">void<\/span>);<br \/>\n}<br \/>\n<\/span><span style=\"font-size: 10pt; font-family: Consolas;\">}<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\"><span style=\"font-size: 10pt; line-height: 115%; font-family: Consolas; color: blue;\">#endif<\/span><\/p>\n<p>Fichier dllinterface.cpp<\/p>\n<p><!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal<\/w:View> <w:Zoom>0<\/w:Zoom> <w:TrackMoves \/> <w:TrackFormatting \/> <w:PunctuationKerning \/> <w:ValidateAgainstSchemas \/> <w:SaveIfXMLInvalid>false<\/w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false<\/w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false<\/w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF \/> <w:LidThemeOther>EN-US<\/w:LidThemeOther> <w:LidThemeAsian>JA<\/w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE<\/w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables \/> <w:SnapToGridInCell \/> <w:WrapTextWithPunct \/> <w:UseAsianBreakRules \/> <w:DontGrowAutofit \/> <w:SplitPgBreakAndParaMark \/> <w:DontVertAlignCellWithSp \/> <w:DontBreakConstrainedForcedTables \/> <w:DontVertAlignInTxbx \/> <w:Word11KerningPairs \/> <w:CachedColBalance \/> <w:UseFELayout \/> <\/w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4<\/w:BrowserLevel> <m:mathPr> <m:mathFont m:val=\"Cambria Math\" \/> <m:brkBin m:val=\"before\" \/> <m:brkBinSub m:val=\"&#45;-\" \/> <m:smallFrac m:val=\"off\" \/> <m:dispDef \/> <m:lMargin m:val=\"0\" \/> <m:rMargin m:val=\"0\" \/> <m:defJc m:val=\"centerGroup\" \/> <m:wrapIndent m:val=\"1440\" \/> <m:intLim m:val=\"subSup\" \/> <m:naryLim m:val=\"undOvr\" \/> <\/m:mathPr><\/w:WordDocument> <\/xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState=\"false\" DefUnhideWhenUsed=\"true\" DefSemiHidden=\"true\" DefQFormat=\"false\" DefPriority=\"99\" LatentStyleCount=\"267\"> <w:LsdException Locked=\"false\" Priority=\"0\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Normal\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"heading 1\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 2\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 3\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 4\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 5\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 6\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 7\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 8\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 9\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 1\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 2\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 3\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 4\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 5\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 6\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 7\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 8\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 9\" \/> <w:LsdException Locked=\"false\" Priority=\"35\" QFormat=\"true\" Name=\"caption\" \/> <w:LsdException Locked=\"false\" Priority=\"10\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Title\" \/> <w:LsdException Locked=\"false\" Priority=\"1\" Name=\"Default Paragraph Font\" \/> <w:LsdException Locked=\"false\" Priority=\"11\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtitle\" \/> <w:LsdException Locked=\"false\" Priority=\"22\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Strong\" \/> <w:LsdException Locked=\"false\" Priority=\"20\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"59\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Table Grid\" \/> <w:LsdException Locked=\"false\" UnhideWhenUsed=\"false\" Name=\"Placeholder Text\" \/> <w:LsdException Locked=\"false\" Priority=\"1\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"No Spacing\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 1\" \/> <w:LsdException Locked=\"false\" UnhideWhenUsed=\"false\" Name=\"Revision\" \/> <w:LsdException Locked=\"false\" Priority=\"34\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"List Paragraph\" \/> <w:LsdException Locked=\"false\" Priority=\"29\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Quote\" \/> <w:LsdException Locked=\"false\" Priority=\"30\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Quote\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"19\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtle Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"21\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"31\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtle Reference\" \/> <w:LsdException Locked=\"false\" Priority=\"32\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Reference\" \/> <w:LsdException Locked=\"false\" Priority=\"33\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Book Title\" \/> <w:LsdException Locked=\"false\" Priority=\"37\" Name=\"Bibliography\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" QFormat=\"true\" Name=\"TOC Heading\" \/> <\/w:LatentStyles> <\/xml><![endif]--><!-- \/* Font Definitions *\/ @font-face {font-family:\"MS Mincho\"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-alt:\"\uff2d\uff33 \u660e\u671d\"; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face {font-family:\"Cambria Math\"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610611985 1073750091 0 0 159 0;} @font-face {font-family:\"\\@MS Mincho\"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} \/* Style Definitions *\/ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:\"\"; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:\"Calibri\",\"sans-serif\"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:\"MS Mincho\"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:\"Times New Roman\"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:\"MS Mincho\"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:\"Times New Roman\"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --><!-- [if gte mso 10]> <mce:style><! \/* Style Definitions *\/ table.MsoNormalTable {mso-style-name:\"Tableau Normal\"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:\"\"; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:\"Calibri\",\"sans-serif\"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} --> <!--[endif]--><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">#include<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: #a31515;\">\u00ab\u00a0dllinterface.h\u00a0\u00bb<br \/>\n<\/span><\/span><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">#include<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: #a31515;\">\u00ab\u00a0voro++.cc.h\u00a0\u00bb<\/span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas; color: green;\">\/\/ Note : Compile with \/EHsc \/LD<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">namespace<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> VoroDLL<br \/>\n{<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">static<\/span> voronoicell * SCA;<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">void<\/span> SCAInit(<span style=\"color: blue;\">double<\/span> xmin, <span style=\"color: blue;\">double<\/span> xmax, <span style=\"color: blue;\">double<\/span> ymin, <span style=\"color: blue;\">double<\/span> ymax, <span style=\"color: blue;\">double<\/span> zmin, <span style=\"color: blue;\">double<\/span> zmax)<br \/>\n{<br \/>\n<span style=\"color: blue;\">if<\/span>(SCA != NULL)<br \/>\n<span style=\"color: blue;\">delete<\/span> SCA;<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> SCA = <span style=\"color: blue;\">new<\/span> voronoicell();<br \/>\n<\/span><span lang=\"FR\" style=\"font-size: 10pt; font-family: Consolas;\">SCA-&gt;init((fpoint)xmin, (fpoint)xmax, (fpoint)ymin, (fpoint)ymax, (fpoint)zmin, (fpoint)zmax);<br \/>\n}<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span lang=\"FR\" style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">void<\/span> SCAPlane(<span style=\"color: blue;\">double<\/span> x, <span style=\"color: blue;\">double<\/span> y, <span style=\"color: blue;\">double<\/span> z, <span style=\"color: blue;\">double<\/span> rsq)<br \/>\n{<br \/>\nSCA-&gt;plane((fpoint)x, (fpoint)y, (fpoint)z, (fpoint)rsq);<br \/>\n<\/span><span style=\"font-size: 10pt; font-family: Consolas;\">}<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">void<\/span> SCACleanup(<span style=\"color: blue;\">void<\/span>)<br \/>\n{<br \/>\n<span style=\"color: blue;\">delete<\/span> SCA;<br \/>\n}<br \/>\n<\/span><span style=\"font-size: 10pt; line-height: 115%; font-family: Consolas;\">}<\/span><\/p>\n<p>Il ne reste plus qu&rsquo;a compiler et linker tout \u00e7a pour obtenir une jolie petite DLL.<\/li>\n<\/ul>\n<ul>\n<li>\n<h2>Etape 2 : Et pour l&rsquo;utiliser en C# ?<strong><br \/>\n<\/strong><\/h2>\n<p>Premi\u00e8rement, pour ne pas se prendre la t\u00eate avec les chemins, car Visual Studio, ce gros malin, ne place pas les r\u00e9sultats d&rsquo;un build C# et d&rsquo;un build C++ d&rsquo;une m\u00eame solution dans les m\u00eames r\u00e9pertoires par d\u00e9faut, il est de bon ton de r\u00e9gler le chemin de sortie de votre projet C# \u00e0 la racine de votre solution.<\/p>\n<ul>\n<li>En Debug : VC# sors le projet dans -Solution-\/-ProjetC#-\/bin\/x86\/Debug, et VC++ dans -Solution-\/Debug.<\/li>\n<li>En Release : VC# sors le projet dans -Solution-\/-ProjetC#-\/bin\/x86\/Release, et VC++ dans -Solution-\/Release.<\/li>\n<\/ul>\n<p>Changer les propri\u00e9t\u00e9s du projet C# pour une sortie dans ..\/Debug et ..\/Release fera l&rsquo;affaire, et votre .exe C# se trouvera donc dans le m\u00eame r\u00e9pertoire que votre .dll C++, ce qui \u00e9pagnera des erreurs \u00ab\u00a0Je trouve pas ta DLL mon coco\u00a0\u00bb \u00e0 l&rsquo;ex\u00e9cution.<\/p>\n<p>Ensuite pour utiliser une DLL non manag\u00e9e au sein de C#, il faut faire appel \u00e0 DLLImport et au package System.Runtime.InteropServices;<br \/>\nPersonellement, j&rsquo;ai \u00e9crit une classe qui &lsquo;wrappe&rsquo; ma DLL, voici ce que \u00e7a donne :<\/p>\n<p>Fichier Voro++.cs :<\/p>\n<p><!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal<\/w:View> <w:Zoom>0<\/w:Zoom> <w:TrackMoves \/> <w:TrackFormatting \/> <w:PunctuationKerning \/> <w:ValidateAgainstSchemas \/> <w:SaveIfXMLInvalid>false<\/w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false<\/w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false<\/w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF \/> <w:LidThemeOther>EN-US<\/w:LidThemeOther> <w:LidThemeAsian>JA<\/w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE<\/w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables \/> <w:SnapToGridInCell \/> <w:WrapTextWithPunct \/> <w:UseAsianBreakRules \/> <w:DontGrowAutofit \/> <w:SplitPgBreakAndParaMark \/> <w:DontVertAlignCellWithSp \/> <w:DontBreakConstrainedForcedTables \/> <w:DontVertAlignInTxbx \/> <w:Word11KerningPairs \/> <w:CachedColBalance \/> <w:UseFELayout \/> <\/w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4<\/w:BrowserLevel> <m:mathPr> <m:mathFont m:val=\"Cambria Math\" \/> <m:brkBin m:val=\"before\" \/> <m:brkBinSub m:val=\"&#45;-\" \/> <m:smallFrac m:val=\"off\" \/> <m:dispDef \/> <m:lMargin m:val=\"0\" \/> <m:rMargin m:val=\"0\" \/> <m:defJc m:val=\"centerGroup\" \/> <m:wrapIndent m:val=\"1440\" \/> <m:intLim m:val=\"subSup\" \/> <m:naryLim m:val=\"undOvr\" \/> <\/m:mathPr><\/w:WordDocument> <\/xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState=\"false\" DefUnhideWhenUsed=\"true\" DefSemiHidden=\"true\" DefQFormat=\"false\" DefPriority=\"99\" LatentStyleCount=\"267\"> <w:LsdException Locked=\"false\" Priority=\"0\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Normal\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"heading 1\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 2\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 3\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 4\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 5\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 6\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 7\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 8\" \/> <w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 9\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 1\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 2\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 3\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 4\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 5\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 6\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 7\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 8\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 9\" \/> <w:LsdException Locked=\"false\" Priority=\"35\" QFormat=\"true\" Name=\"caption\" \/> <w:LsdException Locked=\"false\" Priority=\"10\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Title\" \/> <w:LsdException Locked=\"false\" Priority=\"1\" Name=\"Default Paragraph Font\" \/> <w:LsdException Locked=\"false\" Priority=\"11\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtitle\" \/> <w:LsdException Locked=\"false\" Priority=\"22\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Strong\" \/> <w:LsdException Locked=\"false\" Priority=\"20\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"59\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Table Grid\" \/> <w:LsdException Locked=\"false\" UnhideWhenUsed=\"false\" Name=\"Placeholder Text\" \/> <w:LsdException Locked=\"false\" Priority=\"1\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"No Spacing\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 1\" \/> <w:LsdException Locked=\"false\" UnhideWhenUsed=\"false\" Name=\"Revision\" \/> <w:LsdException Locked=\"false\" Priority=\"34\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"List Paragraph\" \/> <w:LsdException Locked=\"false\" Priority=\"29\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Quote\" \/> <w:LsdException Locked=\"false\" Priority=\"30\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Quote\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 1\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 2\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 3\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 4\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 5\" \/> <w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 6\" \/> <w:LsdException Locked=\"false\" Priority=\"19\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtle Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"21\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Emphasis\" \/> <w:LsdException Locked=\"false\" Priority=\"31\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtle Reference\" \/> <w:LsdException Locked=\"false\" Priority=\"32\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Reference\" \/> <w:LsdException Locked=\"false\" Priority=\"33\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Book Title\" \/> <w:LsdException Locked=\"false\" Priority=\"37\" Name=\"Bibliography\" \/> <w:LsdException Locked=\"false\" Priority=\"39\" QFormat=\"true\" Name=\"TOC Heading\" \/> <\/w:LatentStyles> <\/xml><![endif]--><!-- \/* Font Definitions *\/ @font-face {font-family:\"MS Mincho\"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-alt:\"\uff2d\uff33 \u660e\u671d\"; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face {font-family:\"Cambria Math\"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610611985 1073750091 0 0 159 0;} @font-face {font-family:\"\\@MS Mincho\"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} \/* Style Definitions *\/ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:\"\"; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:\"Calibri\",\"sans-serif\"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:\"MS Mincho\"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:\"Times New Roman\"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:\"MS Mincho\"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:\"Times New Roman\"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --><!-- [if gte mso 10]> <mce:style><! \/* Style Definitions *\/ table.MsoNormalTable {mso-style-name:\"Tableau Normal\"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:\"\"; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:\"Calibri\",\"sans-serif\"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} --> <!--[endif]--><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">using<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> System;<br \/>\n<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">using<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> System.Runtime.InteropServices;<br \/>\n<\/span><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">using<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> System.Windows.Forms;<\/span><\/p>\n<p><span style=\"font-size: 10pt; font-family: Consolas; color: blue;\">namespace<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"> xxx.Analysis<br \/>\n{<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: gray;\">\/\/\/<\/span> <span style=\"color: gray;\">&lt;summary&gt;<br \/>\n<\/span><span style=\"color: gray;\">\/\/\/<\/span><span style=\"color: green;\"> Voro++ DLL Interface<br \/>\n<\/span><span style=\"color: gray;\">\/\/\/<\/span><span style=\"color: green;\"> ====================<br \/>\n<\/span><span style=\"color: gray;\">\/\/\/<\/span><span style=\"color: green;\"> Port of the library Voro++ (only basic functions) as a DLL file, exposing some basics features.<br \/>\n<\/span><span style=\"color: gray;\">\/\/\/<\/span><span style=\"color: green;\"> This library allows to compute Voronoi cells in a 3D space.<br \/>\n<\/span><span style=\"color: gray;\">\/\/\/<br \/>\n<\/span><span style=\"color: gray;\">\/\/\/<\/span><span style=\"color: green;\"> Author : Pierre BELIN, 2009.<br \/>\n<\/span><span style=\"color: gray;\">\/\/\/<\/span> <span style=\"color: gray;\">&lt;\/summary&gt;<\/span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">class<\/span> <span style=\"color: #2b91af;\">VoroPP<br \/>\n<\/span>{<\/span><span style=\"font-size: 10pt; font-family: Consolas;\">[<span style=\"color: #2b91af;\">DllImport<\/span>(<span style=\"color: #a31515;\">\u00ab\u00a0Voro++.dll\u00a0\u00bb<\/span>, EntryPoint = <span style=\"color: #a31515;\">\u00ab\u00a0#2\u00a0\u00bb<\/span>)]<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"><span style=\"color: blue;\"><br \/>\nprivate<\/span> <span style=\"color: blue;\">static<\/span> <span style=\"color: blue;\">extern<\/span> <span style=\"color: blue;\">void<\/span> _Init(<span style=\"color: blue;\">double<\/span> xmin, <span style=\"color: blue;\">double<\/span> xmax, <span style=\"color: blue;\">double<\/span> ymin, <span style=\"color: blue;\">double<\/span> ymax, <span style=\"color: blue;\">double<\/span> zmin, <span style=\"color: blue;\">double<\/span> zmax);<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"><br \/>\n[<span style=\"color: #2b91af;\">DllImport<\/span>(<span style=\"color: #a31515;\">\u00ab\u00a0Voro++.dll\u00a0\u00bb<\/span>, EntryPoint = <span style=\"color: #a31515;\">\u00ab\u00a0#3\u00a0\u00bb<\/span>)]<\/span><span style=\"font-size: 10pt; font-family: Consolas;\"><span style=\"color: blue;\"><br \/>\nprivate<\/span> <span style=\"color: blue;\">static<\/span> <span style=\"color: blue;\">extern<\/span> <span style=\"color: blue;\">void<\/span> _Plane(<span style=\"color: blue;\">double<\/span> x, <span style=\"color: blue;\">double<\/span> y, <span style=\"color: blue;\">double<\/span> z, <span style=\"color: blue;\">double<\/span> rsq);<br \/>\n[<span style=\"color: #2b91af;\">DllImport<\/span>(<span style=\"color: #a31515;\">\u00ab\u00a0Voro++.dll\u00a0\u00bb<\/span>, EntryPoint = <span style=\"color: #a31515;\">\u00ab\u00a0#1\u00a0\u00bb<\/span>)]<br \/>\n<span style=\"color: blue;\">private<\/span> <span style=\"color: blue;\">static<\/span> <span style=\"color: blue;\">extern<\/span> <span style=\"color: blue;\">void<\/span> _Cleanup();<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">public<\/span> <span style=\"color: blue;\">static<\/span> <span style=\"color: blue;\">void<\/span> Cleanup()<br \/>\n{<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">try<br \/>\n<\/span>{<br \/>\n_Cleanup();<\/span><\/p>\n<p><span style=\"font-size: 10pt; font-family: Consolas;\">}<br \/>\n<span style=\"color: blue;\">catch<\/span> (<span style=\"color: #2b91af;\">Exception<\/span> e)<br \/>\n{<br \/>\n<span style=\"color: #2b91af;\">MessageBox<\/span>.Show(<span style=\"color: #a31515;\">\u00ab\u00a0Error interacting with Voro++.dll : \u00ab\u00a0<\/span> + e.Message, <span style=\"color: #a31515;\">\u00ab\u00a0DLL Error\u00a0\u00bb<\/span>, <span style=\"color: #2b91af;\">MessageBoxButtons<\/span>.OK, <span style=\"color: #2b91af;\">MessageBoxIcon<\/span>.Error);<br \/>\n<span style=\"color: #2b91af;\">Application<\/span>.Exit();<br \/>\n}<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span lang=\"FR\" style=\"font-size: 10pt; font-family: Consolas;\"> }<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span lang=\"FR\" style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">public<\/span> <span style=\"color: blue;\">static<\/span> <span style=\"color: blue;\">void<\/span> Init(<span style=\"color: blue;\">double<\/span> xmin, <span style=\"color: blue;\">double<\/span> xmax, <span style=\"color: blue;\">double<\/span> ymin, <span style=\"color: blue;\">double<\/span> ymax, <span style=\"color: blue;\">double<\/span> zmin, <span style=\"color: blue;\">double<\/span> zmax)<br \/>\n{<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span lang=\"FR\" style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">try<br \/>\n<\/span>{<br \/>\n_Init(xmin, xmax, ymin, ymax, zmin, zmax);<\/span><\/p>\n<p><span style=\"font-size: 10pt; font-family: Consolas;\">}<br \/>\n<span style=\"color: blue;\">catch<\/span> (<span style=\"color: #2b91af;\">Exception<\/span> e)<br \/>\n{<br \/>\n<span style=\"color: #2b91af;\">MessageBox<\/span>.Show(<span style=\"color: #a31515;\">\u00ab\u00a0Error interacting with Voro++.dll : \u00ab\u00a0<\/span> + e.Message, <span style=\"color: #a31515;\">\u00ab\u00a0DLL Error\u00a0\u00bb<\/span>, <span style=\"color: #2b91af;\">MessageBoxButtons<\/span>.OK, <span style=\"color: #2b91af;\">MessageBoxIcon<\/span>.Error);<br \/>\n<span style=\"color: #2b91af;\">Application<\/span>.Exit();<br \/>\n}<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> }<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\">\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">public<\/span> <span style=\"color: blue;\">static<\/span> <span style=\"color: blue;\">void<\/span> Plane(<span style=\"color: blue;\">double<\/span> x, <span style=\"color: blue;\">double<\/span> y, <span style=\"color: blue;\">double<\/span> z, <span style=\"color: blue;\">double<\/span> rsq)<br \/>\n{<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 0.0001pt; line-height: normal;\"><span style=\"font-size: 10pt; font-family: Consolas;\"> <span style=\"color: blue;\">try<br \/>\n<\/span>{<br \/>\n_Plane(x, y, z, rsq);<br \/>\n}<br \/>\n<span style=\"color: blue;\">catch<\/span> (<span style=\"color: #2b91af;\">Exception<\/span> e)<br \/>\n{<br \/>\n<span style=\"color: #2b91af;\">MessageBox<\/span>.Show(<span style=\"color: #a31515;\">\u00ab\u00a0Error interacting with Voro++.dll : \u00ab\u00a0<\/span> + e.Message, <span style=\"color: #a31515;\">\u00ab\u00a0DLL Error\u00a0\u00bb<\/span>, <span style=\"color: #2b91af;\">MessageBoxButtons<\/span>.OK, <span style=\"color: #2b91af;\">MessageBoxIcon<\/span>.Error);<br \/>\n<span style=\"color: #2b91af;\">Application<\/span>.Exit();<br \/>\n}<\/span><\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>Vous l&rsquo;aurez donc compris, pour faire appel \u00e0 votre fonction export\u00e9e, il faut reprendre son prototype en la d\u00e9clarant <span style=\"font-size: 10pt; font-family: Consolas;\"><span style=\"color: blue;\">static<\/span> <span style=\"color: blue;\">extern<\/span><\/span> et en ajoutant le pr\u00e9fixe DLLImport : <span style=\"font-size: 10pt; font-family: Consolas;\">[<span style=\"color: #2b91af;\">DllImport<\/span>(<span style=\"color: #a31515;\">\u00ab\u00a0Ma DLL\u00a0\u00bb<\/span>, EntryPoint = <span style=\"color: #a31515;\">\u00ab\u00a0Un num\u00e9ro obscur ou le nom de la fonction\u00a0\u00bb<\/span>)]<\/span><\/p>\n<p>L&rsquo;EntryPoint est sens\u00e9 marcher avec les noms de fonctions automatiquement&#8230;<br \/>\nCependant, selon la fa\u00e7on dont \u00e0 \u00e9t\u00e9 cod\u00e9e la DLL que vous voulez utiliser, vous pouvez vous manger l&rsquo;exception en t\u00eate d&rsquo;article&#8230;<br \/>\nLa parade dans ce cas est d&rsquo;appeler les fonctions via leur num\u00e9ro ordinal, c&rsquo;est plus moche mais \u00e7a fonctionne.<\/p>\n<p>Pour trouver le num\u00e9ro ordinal correspondant \u00e0 votre fonction, il faut ouvrir la DLL avec laquelle vous voulez jouer avec un petit utilitaire, par exemple DLL Export Viewer :<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-14\" title=\"DLL Export Viewer\" src=\"http:\/\/ree7.fr\/blog\/wp-content\/uploads\/2009\/04\/02.png\" alt=\"DLL Export Viewer\" width=\"708\" height=\"177\" srcset=\"http:\/\/www.ree7.fr\/blog\/wp-content\/uploads\/2009\/04\/02.png 708w, http:\/\/www.ree7.fr\/blog\/wp-content\/uploads\/2009\/04\/02-300x75.png 300w\" sizes=\"(max-width: 708px) 100vw, 708px\" \/><br \/>\nSinon, comme vous pouvez le voir, je n&rsquo;utilise pas directement les fonctions de DLL, histoire de pouvoir prendre en compte les exceptions pouvant arriver lors de l&rsquo;ex\u00e9cution, typiquement DLLNotFound et EntryPointNotFound.<br \/>\nJ&rsquo;esp\u00e8re vous avoir \u00e9pargn\u00e9 quelques moments de t\u00e2tonnements et frustration \ud83d\ude09<\/li>\n<\/ul>\n<p>Plus d&rsquo;infos :<\/p>\n<ul>\n<li>La plupart de ce qu&rsquo;il faut savoir (en anglais), par Paul DiLascia : <a href=\"http:\/\/msdn.microsoft.com\/en-us\/magazine\/cc301501.aspx\" target=\"_blank\">http:\/\/msdn.microsoft.com\/en-us\/magazine\/cc301501.aspx<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>[ Guide non exhaustif r\u00e9alis\u00e9 lorsque j&rsquo;\u00e9tais encore stagiaire \ud83d\ude09 ] Cette exception m&rsquo;a donn\u00e9 un peu de fil \u00e0 retordre, je vais donc partager ma solution avec vous. Dans le cadre d&rsquo;un projet C#, il arrive qu&rsquo;on ait besoin d&rsquo;utiliser des libraires (.DLL) non manag\u00e9es. Pour l&rsquo;imp\u00e9trant ce n&rsquo;est pas forc\u00e9ment une balade de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[7],"tags":[3,10,9,8],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p19lzH-9","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/posts\/9"}],"collection":[{"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":0,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}