我正在创建一个CIM提供程序,我的schema.mof文件如下所示:
class CIM_pvtv
{
[Key] String name;
String text;
};
然后我运行omigen创建所有文件,依此类推。 我无法理解pvtv_Class_Provider.cpp文件中的C ++。这是简单的代码:
29 void pvtv_Class_Provider::EnumerateInstances(
30 Context& context,
31 const String& nameSpace,
32 const PropertySet& propertySet,
33 bool keysOnly,
34 const MI_Filter* filter)
35 {
36 pvtv_Class yup;
37
38 std::string sometext;
39 sometext = "hi";
40
41 yup.name_value("Jim");
42 yup.text_value(sometext);
43
44 context.Post(yup);
45 context.Post(MI_RESULT_OK);
46 }
当我运行make时,我得到了这个:
sudo make
g++ -c -g -fPIC -Wall -fvisibility=hidden -fno-strict-aliasing -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -I///opt/omi/include pvtv_Class_Provider.cpp -o pvtv_Class_Provider.o
pvtv_Class_Provider.cpp: In member function void mi::pvtv_Class_Provider::EnumerateInstances(mi::Context&, const mi::String&, const mi::PropertySet&, bool, const MI_Filter*):
pvtv_Class_Provider.cpp:42: error: no matching function for call to âmi::pvtv_Class::text_value(std::string&)
pvtv.h:368: note: candidates are: const mi::String& mi::pvtv_Class::text_value() const
pvtv.h:374: note: void mi::pvtv_Class::text_value(const mi::String&)
make: *** [pvtv_Class_Provider.o] Error 1
我遇到的问题是在yup.text_value()中使用变量“sometext”。如果我在引号中为它指定一个值,例如this yup.text_value(“hello”),它工作正常,但由于某种原因我不能在其中使用字符串变量。我究竟做错了什么? 谢谢