{"id":6816,"date":"2019-05-19T13:02:51","date_gmt":"2019-05-19T04:02:51","guid":{"rendered":"http:\/\/www.code-magagine.com\/?p=6816"},"modified":"2023-05-08T23:54:59","modified_gmt":"2023-05-08T14:54:59","slug":"%e3%80%90vb-net%e3%80%91vb-net%e3%81%8b%e3%82%89c%e3%81%aedll%e3%82%92%e5%91%bc%e3%81%b3%e5%87%ba%e3%81%99%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"http:\/\/www.code-magagine.com\/?p=6816","title":{"rendered":"\u3010VB.NET\u3011VB.NET\u304b\u3089C++\u306eDLL\u3092\u547c\u3073\u51fa\u3059\u65b9\u6cd5"},"content":{"rendered":"<p>C++\u3067\u4f5c\u6210\u3057\u305fDLL\u306f\u540c\u3058Windows\u57fa\u76e4\u306e\u8a00\u8a9e\u3067\u3042\u308bVB.NET\u3084C#\u306a\u3069\u3067\u3082\u5229\u7528\u53ef\u80fd\u3067\u3059\u3002\u4eca\u56de\u306fVB.NET\u3067\u306e\u547c\u3073\u51fa\u3057\u5229\u7528\u4f8b\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h2>C++\u5074<\/h2>\n<h3>\u30d8\u30c3\u30c0<\/h3>\n<p>\u547c\u3073\u51fa\u3059\u5074\u304cDLL\u3092\u4f7f\u3046\u969b\u306b\u5fc5\u8981\u3068\u306a\u308b\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">#pragma once\r\n\r\nextern \"C\"\r\n{\r\n\t__declspec(dllexport) void Test(char* buf);\r\n}\r\n<\/pre>\n<h3>\u30bd\u30fc\u30b9<\/h3>\n<pre class=\"lang:default decode:true\">#include &lt;iostream&gt;\r\n#include \"library.h\"\r\n\r\nvoid Test(char* buf)\r\n{\r\n\tstd::cout &lt;&lt; \"C\u306e\u95a2\u6570\u304c\u547c\u3073\u51fa\u3055\u308c\u307e\u3057\u305f\u3002\" &lt;&lt; std::endl;\r\n\r\n\tbuf[0] = 'a';\r\n\tbuf[1] = 'b';\r\n\tbuf[2] = 'c';\r\n\r\n\tsystem(\"pause\");\r\n\t\/\/return true;\r\n}\r\n<\/pre>\n<p>C\uff0b\uff0b\u3067\u4f5c\u6210\u3057\u305fDLL\u306f\u3001VB.NET\u30a2\u30d7\u30ea\u306eexe\u3068\u540c\u968e\u5c64\u306b\u51fa\u529b\u3055\u308c\u308b\u3088\u3046\u306b\u8a2d\u5b9a\u3057\u3066\u304a\u304f\u3002\u3068\u3044\u3046\u304b\u51fa\u529b\u3059\u308b\u3002<\/p>\n<h2>VB.NET\u5074<\/h2>\n<pre class=\"lang:default decode:true\">Imports System.Runtime.InteropServices\r\n\r\nModule Module1\r\n\r\n    &lt;DllImport(\"Library\", CallingConvention:=CallingConvention.Cdecl)&gt;\r\n    Private Sub Test(ByVal str As System.Text.StringBuilder)\r\n    End Sub\r\n\r\n    Sub Main()\r\n\r\n        Dim a As New System.Text.StringBuilder(256)\r\n\r\n        Test(a)\r\n\r\n        Debug.WriteLine(a)\r\n\r\n    End Sub\r\n\r\nEnd Module\u3053<\/pre>\n<p>\u3053\u3046\u3059\u308b\u3053\u3068\u3067C++\u5074\u3067\u4f5c\u6210\u3057\u305fTest\u95a2\u6570\u3092\u4f7f\u3063\u3066\u7d50\u679c\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3059\u3054\u304f\u7c21\u5358\u306a\u4f8b\u306b\u306f\u306a\u308a\u307e\u3059\u304c\u3054\u53c2\u8003\u306b\u306a\u308c\u3070\u5e78\u3044\u3067\u3059\u3002<\/p>\n<h2>\u53c2\u8003\uff1aDLL<\/h2>\n<p>\u30c0\u30a4\u30ca\u30df\u30c3\u30af\u30ea\u30f3\u30af\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u7565\u3067\u3059\u3002Windows\u57fa\u76e4\u306e\u8a00\u8a9e\uff08Visual C++\u3001C#\u3001VB.NET\uff09\u3067\u3042\u308c\u3070\u3069\u306e\u8a00\u8a9e\u3067\u3082\u4f5c\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u3069\u306e\u8a00\u8a9e\u3067\u3082\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002\u6c4e\u7528\u6027\u306e\u9ad8\u3044\u95a2\u6570\u306a\u3069\u304c\u3082\u3057\u3067\u304d\u3066\u4ed6\u306e\u8a00\u8a9e\u306e\u958b\u767a\u3067\u3082\u6d41\u7528\u3057\u305f\u3044\u5834\u5408\u306a\u3069\u306b\u66f8\u304d\u51fa\u3057\u305f\u308a\u3057\u307e\u3059\u3002<\/p>\n<p>\u8907\u6570\u306eDLL\u3092\u5b9f\u884c\u30d5\u30a1\u30a4\u30eb(.exe)\u304b\u3089\u547c\u3073\u51fa\u3059\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\u79c1\u306e\u904e\u53bb\u306e\u5b9f\u52d9\u3067\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u8981\u4ef6\u3067\u5229\u7528\u3057\u307e\u3057\u305f\u3002<\/p>\n<ul>\n<li>C++\u3067\u3057\u304b\u5229\u7528\u3067\u304d\u306a\u3044\u30e9\u30a4\u30d6\u30e9\u30ea\u3092VB.NET\u5074\u304b\u3089\u547c\u3073\u51fa\u3057\u305f\u3044\u5834\u5408<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"C++\u3067\u4f5c\u6210\u3057\u305fDLL\u306f\u540c\u3058Windows\u57fa\u76e4\u306e\u8a00\u8a9e\u3067\u3042\u308bVB.NET\u3084C#\u306a\u3069\u3067\u3082\u5229\u7528\u53ef\u80fd\u3067\u3059\u3002\u4eca\u56de\u306fVB.NET\u3067\u306e\u547c\u3073\u51fa\u3057\u5229\u7528\u4f8b\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002 C++\u5074 \u30d8\u30c3\u30c0 \u547c\u3073\u51fa\u3059\u5074\u304cDLL\u3092\u4f7f\u3046\u969b\u306b\u5fc5\u8981\u3068\u306a\u308b\u30d5\u30a1\u30a4\u30eb\u3067\u3059 [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[76,158],"tags":[],"_links":{"self":[{"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=\/wp\/v2\/posts\/6816"}],"collection":[{"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6816"}],"version-history":[{"count":4,"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=\/wp\/v2\/posts\/6816\/revisions"}],"predecessor-version":[{"id":19594,"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=\/wp\/v2\/posts\/6816\/revisions\/19594"}],"wp:attachment":[{"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6816"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.code-magagine.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}