{"id":3557,"date":"2012-07-03T17:36:58","date_gmt":"2012-07-03T08:36:58","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/?p=3557"},"modified":"2012-07-03T17:36:58","modified_gmt":"2012-07-03T08:36:58","slug":"ms-c-%e3%81%a7%e3%81%af-__declspecproperty-%e3%81%a7%e3%83%97%e3%83%ad%e3%83%91%e3%83%86%e3%82%a3%e3%82%92%e4%bd%9c%e3%82%8c%e3%82%8b%e3%82%88","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/3557","title":{"rendered":"MS-C++ \u3067\u306f __declspec(property()) \u3067\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u4f5c\u308c\u308b\u3088"},"content":{"rendered":"<p>__declspec(property())<br \/>\n<a href=\"http:\/\/blogs.wankuma.com\/melt\/archive\/2007\/03\/12\/66223.aspx\">http:\/\/blogs.wankuma.com\/melt\/archive\/2007\/03\/12\/66223.aspx<\/a><br \/>\n\u30d7\u30ed\u30d1\u30c6\u30a3 (C++)<br \/>\n<a href=\"http:\/\/msdn.microsoft.com\/ja-jp\/library\/yhfk0thd(v=vs.110).aspx\">http:\/\/msdn.microsoft.com\/ja-jp\/library\/yhfk0thd(v=vs.110).aspx<\/a><\/p>\n<p>VC++2005 \u306e\u9803\u304b\u3089\u3042\u3063\u305f\u306e\u3067\u3059\u304c\u3001MS-C++\u306e\u5834\u5408\u306f\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u4f5c\u308c\u305f\u306e\u3067\u3059\u306d&#8230;\u306a\u308b\u307b\u3069\u3002<br \/>\n__declspec(property())\u306a\u69cb\u6587\u3092\u4f5c\u308c\u3070\u3001VB\/C# \u306e\u3088\u3046\u306b\u30d7\u30ed\u30d1\u30c6\u30a3\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3068\u3044\u3046\u4fbf\u5229\u3055\u3002\u3053\u308c\u3060\u3068\u3001Model \u3092\u4f5c\u308b\u6642\u306b\u826f\u3055\u305d\u3046\u3063\u3066\u3053\u3068\u3067\u3001\u65e9\u901f PROPERTY \u30de\u30af\u30ed\u3092\u4f5c\u6210\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n#include &amp;quot;stdafx.h&amp;quot;\r\n#include &lt;afxwin.h&gt;\r\n#include &lt;iostream&gt;\r\n#include &lt;string&gt;\r\n\r\nclass Model\r\n{\r\nprivate:\r\n\tint _value;\r\npublic:\r\n\t__declspec(property(get=GetValue, put=SetValue)) int Value;\r\npublic:\r\n\tint GetValue() { return _value; }\r\n\tvoid SetValue( int value ) { _value = value; }\r\n\r\n\/\/ \u30de\u30af\u30ed\u3067\u5b9a\u7fa9\u3059\u308b\r\n#define PROPERTY( _t, _m )\t\\\r\nprivate: _t m_##_m ;\t\t\\\r\npublic:\t\t\t\t\t\t\\\r\n\t__declspec(property(get=get##_m, put=set##_m)) _t _m ;\t\\\r\n\t_t get##_m() { return m_##_m; }\t\t\t\t\t\t\\\r\n\tvoid set##_m( _t value ) { m_##_m = value; };\r\n\r\npublic:\r\n\tPROPERTY( int, Number );\r\n\tPROPERTY( CString, Name );\r\n\tPROPERTY( double, Pressure );\r\n\tPROPERTY( std::string, MyName );\r\n};\r\n\r\nint _tmain(int argc, _TCHAR* argv&#x5B;])\r\n{\r\n\tModel model;\r\n\tmodel.Value = 10;\r\n\r\n\tmodel.Name = L&amp;quot;masuda tomoaki&amp;quot;;\r\n\tmodel.Number = 10;\r\n\tmodel.Pressure = 1.2f;\r\n\tmodel.MyName = &amp;quot;tomoaki&amp;quot;;\r\n\r\n\tstd::cout &lt;&lt; &amp;quot;name: &amp;quot; &lt;&lt; model.Name &lt;&lt; std::endl\r\n\t\t      &lt;&lt; &amp;quot;num:  &amp;quot; &lt;&lt; model.Number &lt;&lt; std::endl;\r\n\tstd::cout &lt;&lt; &amp;quot;myname: &amp;quot; &lt;&lt; model.MyName &lt;&lt; std::endl;\r\n\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u3067\u306f CString \u3092 cout \u3057\u3066\u3044\u308b\u3068\u304d\u306b\u306f\u6587\u5b57\u5316\u3051\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u307e\u3041\u5927\u62b5\u306e\u3068\u3053\u308d\u306fok\u3002<br \/>\n\u3053\u308c\u3067\u3001\u306a\u3093\u3089\u304b\u306e\u5f62\u3067\u30d7\u30ed\u30d1\u30c6\u30a3\u540d\u3068\u30d0\u30a4\u30f3\u30c9\u3055\u305b\u308c\u3070\u3001INotify \u3092\u5b9f\u88c5\u3067\u304d\u308b\u304b\u306a\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>__declspec(property()) http:\/\/blogs.wankuma.com\/melt\/archive\/2007\/03\/12\/66223.aspx \u30d7\u30ed\u30d1\u30c6\u30a3 (C++) http:\/\/msdn.mic &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/3557\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[22],"tags":[],"class_list":["post-3557","post","type-post","status-publish","format-standard","hentry","category-c"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/3557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=3557"}],"version-history":[{"count":1,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/3557\/revisions"}],"predecessor-version":[{"id":3558,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/3557\/revisions\/3558"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=3557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=3557"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=3557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}