{"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<p>[code lang=&#8221;csharp&#8221;]<br \/>\n#include &quot;stdafx.h&quot;<br \/>\n#include &lt;afxwin.h&gt;<br \/>\n#include &lt;iostream&gt;<br \/>\n#include &lt;string&gt;<\/p>\n<p>class Model<br \/>\n{<br \/>\nprivate:<br \/>\n\tint _value;<br \/>\npublic:<br \/>\n\t__declspec(property(get=GetValue, put=SetValue)) int Value;<br \/>\npublic:<br \/>\n\tint GetValue() { return _value; }<br \/>\n\tvoid SetValue( int value ) { _value = value; }<\/p>\n<p>\/\/ \u30de\u30af\u30ed\u3067\u5b9a\u7fa9\u3059\u308b<br \/>\n#define PROPERTY( _t, _m )\t\\<br \/>\nprivate: _t m_##_m ;\t\t\\<br \/>\npublic:\t\t\t\t\t\t\\<br \/>\n\t__declspec(property(get=get##_m, put=set##_m)) _t _m ;\t\\<br \/>\n\t_t get##_m() { return m_##_m; }\t\t\t\t\t\t\\<br \/>\n\tvoid set##_m( _t value ) { m_##_m = value; };<\/p>\n<p>public:<br \/>\n\tPROPERTY( int, Number );<br \/>\n\tPROPERTY( CString, Name );<br \/>\n\tPROPERTY( double, Pressure );<br \/>\n\tPROPERTY( std::string, MyName );<br \/>\n};<\/p>\n<p>int _tmain(int argc, _TCHAR* argv[])<br \/>\n{<br \/>\n\tModel model;<br \/>\n\tmodel.Value = 10;<\/p>\n<p>\tmodel.Name = L&quot;masuda tomoaki&quot;;<br \/>\n\tmodel.Number = 10;<br \/>\n\tmodel.Pressure = 1.2f;<br \/>\n\tmodel.MyName = &quot;tomoaki&quot;;<\/p>\n<p>\tstd::cout &lt;&lt; &quot;name: &quot; &lt;&lt; model.Name &lt;&lt; std::endl<br \/>\n\t\t      &lt;&lt; &quot;num:  &quot; &lt;&lt; model.Number &lt;&lt; std::endl;<br \/>\n\tstd::cout &lt;&lt; &quot;myname: &quot; &lt;&lt; model.MyName &lt;&lt; std::endl;<\/p>\n<p>\treturn 0;<br \/>\n}<br \/>\n[\/code]<\/p>\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_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[22],"tags":[],"class_list":["post-3557","post","type-post","status-publish","format-standard","hentry","category-c"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_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}]}}