ysjadnt 发表于 2026-6-10 23:13:54

新手学习封装的问题

<火山程序 类型 = "通常" 版本 = 1 />
# @ @m<DECLARE_REF_OBJECT_CLASS_WITH_DATA> (mbWebWiewWrapper)
# @begin
# <> <include>
# public:
#   inline_ @sn<current_class>(wkeWebView webView):@sn<current_class>()
#   {
#         data().SetwebView(webView);
#   }
#   inline_ wkeWebView GetwebView()
#   {
#         wkeWebView webView = data().GetwebView();
#         return webView;
#   }
#   inline_ void SetwebView(wkeWebView webView)
#   {
#         data().SetwebView(webView);
#   }
# <> </include>
以上为火山中的代码


<火山程序 类型 = "通常" 版本 = 1 />
# @ @m<DECLARE_REF_OBJECT_CLASS_WITH_DATA>(mbWebViewWrapper)
# @begin
# <> <include>
# public:
#   inline_ @sn<current_class>(mbWebView webView):@sn<current_class>() {data().SetWebView(webView);}
#   inline_ mbWebView GetWebView() {return data().GetWebView();}
#   inline_ void SetWebView(mbWebView webView) {data().SetWebView(webView);}
# <> </include>
# @end
以上为我改的代码


<火山程序 类型 = "通常" 版本 = 1 />
@ if(GetWebView() != NULL) return false;
@ mbWebView webView = mbCreateWebWindow((mbWindowType)MB_WINDOW_TYPE_POPUP, (HWND)@<参_父窗口句柄>, 0, 0, @<参_宽度>, @<参_高度>);
@ if(!webView) return false;
@ SetWebView(webView);
@ mbShowWindow(webView, true);
调用时的代码

直接运行不了,报错找不到 data() 标识,是我哪里写错了吗?


我在类的成员中添加一个“成_MB句柄”成员变量,并改下面这种调用就可以了。
但是这样调用写法正确吗?看封装文档里写的只允许出现一次,但下面这种成员变量出现多次了,有没有什么影响?

<火山程序 类型 = "通常" 版本 = 1 />
@ if(@<成_MB句柄> != NULL) return false;
@ @<成_MB句柄> = mbCreateWebWindow((mbWindowType)MB_WINDOW_TYPE_POPUP, (HWND)@<参_父窗口句柄>, 0, 0, @<参_宽度>, @<参_高度>);
@ if(!@<成_MB句柄>) return false;
@ mbShowWindow(@<成_MB句柄>, true);

大佬帮我解答下


山梦 发表于 2026-6-11 07:25:11

看不懂,完全看不懂。我现在只学会丢给AI。

blackvolcano 发表于 2026-6-11 09:19:55

新手不建议学封装

承易 发表于 2026-6-12 19:14:57

官方应该最了解封装情况说明,写完整封装文档, 让AI学会,自动封装,人工微调节,就行了,
页: [1]
查看完整版本: 新手学习封装的问题