使用wsdl2cpp生成工作的Onvif代码
Generate working Onvif code with wsdl2cpp
我用
从cmd生成DeviceMgmt存根WSDL2CPP.bat -uri http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl -u -d adb -o OutputDirectory
第一次,我得到了一个错误,像"没有服务被发现",我通过添加这个来解决它:
<wsdl:service name="OnvifService">
<wsdl:port name="OnvifEndpoint" binding="DeviceBinding">
<soap:address location="http://www.onvif.org/ver10/device/wsdl"/>
</wsdl:port>
</wsdl:service>
在devicemgmt.wsdl 我在VS2012中打开生成的项目,将项目配置类型设置为动态库。在我编译它之后,我得到了很多错误,比如:
Error 907 error C2065: 'element' : undeclared identifier d:projectsonvifdevicemgmtservicesrcunsupportedpolicyrequestfaulttype.cpp 878
Error 1725 error C2143: syntax error : missing ';' before '*' d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.h 46
Error 1726 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.h 46
Error 1731 error C2061: syntax error : identifier 'axutil_duration_t' d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.h 206
Error 2872 error C2143: syntax error : missing ';' before '*' d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.h 46
Error 2873 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.h 46 error C2660: 'axutil_base64_binary_set_encoded_binary' : function does not take 1 arguments d:projectsonvifdevicemgmtservicesrcmotionincells.cpp 343
Error 4114 error C2059: syntax error : ')' d:projectsonvifdevicemgmtservicesrcmotionincells.cpp 344
Error 4256 error C2065: 'cp' : undeclared identifier d:projectsonvifdevicemgmtservicesrcmessagetypes_type0.cpp 81
Error 4257 error C2065: 'cp' : undeclared identifier d:projectsonvifdevicemgmtservicesrcmessagetypes_type0.cpp 83
Error 4258 error C2065: 'cp' : undeclared identifier d:projectsonvifdevicemgmtservicesrcmessagetypes_type0.cpp 85
Error 4259 error C2065: 'cp' : undeclared identifier d:projectsonvifdevicemgmtservicesrcmessagetypes_type0.cpp 86
Error 4260 error C2065: 'cp' : undeclared identifier d:projectsonvifdevicemgmtservicesrcmessagetypes_type0.cpp 100
Error 4261 error C2065: 'cp' : undeclared identifier d:projectsonvifdevicemgmtservicesrcmessagetypes_type0.cpp 108
Error 4262 error C2664: 'axutil_qname_free' : cannot convert parameter 1 from 'void *' to 'axutil_qname *' d:projectsonvifdevicemgmtservicesrcmessagetypes_type0.cpp 416
Error 4695 error C2065: 'element' : undeclared identifier d:projectsonvifdevicemgmtservicesrcinvalidfilterfaulttype.cpp 878
Error 6379 error C2065: 'env' : undeclared identifier d:projectsonvifdevicemgmtservicesrcattributedqnametype.cpp 88
Error 6380 error C2227: left of '->allocator' must point to class/struct/union/generic type d:projectsonvifdevicemgmtservicesrcattributedqnametype.cpp 88
Error 6381 error C2227: left of '->malloc_fn' must point to class/struct/union/generic type d:projectsonvifdevicemgmtservicesrcattributedqnametype.cpp 88
Error 6382 error C2065: 'prefix' : undeclared identifier d:projectsonvifdevicemgmtservicesrcattributedqnametype.cpp 89
Error 6383 error C2065: 'prefix' : undeclared identifier d:projectsonvifdevicemgmtservicesrcattributedqnametype.cpp 90
Error 6518 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.h 46
Error 6523 error C2061: syntax error : identifier 'axutil_duration_t' d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.h 206
Error 6524 error C3861: 'axutil_duration_create_from_string': identifier not found d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 132
Error 6525 error C2039: '_duration' : is not a member of 'org_xmlsoap_schemas_soap_envelope::AbsoluteOrRelativeTimeType::<unnamed-type-memberType>' d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 229
Error 6526 error C3861: 'axutil_duration_serialize_duration': identifier not found d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 229
Error 6527 error C2143: syntax error : missing ';' before '*' d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 437
Error 6528 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 437
Error 6529 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 439
Error 6530 error C2039: '_duration' : is not a member of 'org_xmlsoap_schemas_soap_envelope::AbsoluteOrRelativeTimeType::<unnamed-type-memberType>' d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 442
Error 6531 error C2059: syntax error : ')' d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 444
Error 6532 error C2065: 'member_type' : undeclared identifier d:projectsonvifdevicemgmtservicesrcabsoluteorrelativetimetype.cpp 448
Error 6539 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_registry.h 65
Error 6540 error C2061: syntax error : identifier 'neethi_operator_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_assertion.h 179
Error 6541 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 58
Error 6542 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 58
Error 6543 error C2086: 'int neethi_policy_t' : redefinition d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 58
Error 6544 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 62
Error 6545 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 79
Error 6546 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 79
Error 6547 error C2086: 'int neethi_policy_t' : redefinition d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 79
Error 6548 error C2061: syntax error : identifier 'neethi_policy_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 83
Error 6549 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 83
Error 6550 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 103
Error 6551 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 103
Error 6552 error C2086: 'int neethi_policy_t' : redefinition d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 103
Error 6553 error C2061: syntax error : identifier 'neethi_policy_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 106
Error 6554 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 108
Error 6555 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 122
Error 6556 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 122
Error 6557 error C2086: 'int neethi_policy_t' : redefinition d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 122
Error 6558 error C2061: syntax error : identifier 'neethi_policy_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 125
Error 6559 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 126
Error 6560 error C2065: 'policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 136
Error 6561 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_engine.h 137
Error 6562 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_util.h 38
Error 6563 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_util.h 38
Error 6564 error C2086: 'int neethi_policy_t' : redefinition d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_util.h 38
Error 6565 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_util.h 41
Error 6566 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_util.h 43
Error 6567 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_util.h 43
Error 6568 error C2086: 'int neethi_policy_t' : redefinition d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_util.h 43
Error 6569 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_util.h 46
Error 6570 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethipolicy.h 53
Error 6571 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethipolicy.h 53
Error 6572 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethipolicy.h 60
Error 6573 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethipolicy.h 60
Error 6575 error C2061: syntax error : identifier 'neethi_policy_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethipolicy.h 66
Error 6576 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeserviceclient.h 84
Error 6577 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeserviceclient.h 84
Error 6586 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeserviceclient.h 386
Error 6587 error C2071: 'wso2wsf::ServiceClient::axis2_svc_client_t' : illegal storage class d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeserviceclient.h 386
Error 6588 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeserviceclient.h 386
Error 6590 error C2378: 'neethi_policy_t' : redefinition; symbol cannot be overloaded with a typedef d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 38
Error 6591 error C2143: syntax error : missing ';' before '*' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 40
Error 6592 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 40
Error 6593 error C2086: 'int neethi_policy_t' : redefinition d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 40
Error 6594 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 42
Error 6595 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 46
Error 6596 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 47
Error 6597 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 51
Error 6598 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 52
Error 6599 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 56
Error 6600 error C2065: 'arraylist' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 57
Error 6601 error C2275: 'axutil_array_list_t' : illegal use of this type as an expression d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 57
Error 6602 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 58
Error 6603 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 62
Error 6604 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 63
Error 6605 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 68
Error 6606 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 69
Error 6607 error C2065: 'normalized_neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 73
Error 6608 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 74
Error 6609 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 78
Error 6610 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 79
Error 6611 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 83
Error 6612 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 84
Error 6613 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 88
Error 6614 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 89
Error 6615 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 94
Error 6616 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 95
Error 6617 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 99
Error 6618 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 100
Error 6619 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 105
Error 6620 error C2065: 'parent' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 106
Error 6621 error C2275: 'axiom_node_t' : illegal use of this type as an expression d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 106
Error 6622 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 107
Error 6623 error C2065: 'policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 111
Error 6624 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 112
Error 6625 error C2065: 'neethi_policy' : undeclared identifier d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 117
Error 6626 error C2059: syntax error : 'const' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeneethi_policy.h 118
Error 6627 error C2061: syntax error : identifier 'neethi_policy_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeaxis2_svc_client.h 602
Error 6628 error C2061: syntax error : identifier 'neethi_policy_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeaxis2_policy_include.h 110
Error 6629 error C2061: syntax error : identifier 'neethi_policy_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeaxis2_policy_include.h 117
Error 6630 error C2061: syntax error : identifier 'neethi_policy_t' d:wsowso2-wsf-cpp-bin-2.1.0-win32wso2-wsf-cpp-bin-2.1.0-win32includeaxis2_policy_include.h 124
Error 6631 error C2143: syntax error : missing ';' before '*' d:wsowso2-
是否有人生成工作代码为Onvif使用WSO2?我做错了什么?
没有尝试使用WSO2,但使用过svcutil.exe。
我添加了我的客户端代理使用Visual Studio 2012,
- 添加新项目,新ClassLibrary 在解决方案资源管理器中使用添加新服务引用上下文菜单
- 在地址中,使用url到wsdl http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
- Clik去
- 选择一个合适的名称,如OnvifDeviceService
- Clik好
这将自动为您生成代理。请注意,Onvif使用的是Soap12,所以basicHttpBinding不在考虑范围内,因为它使用的是Soap1.1。
使用WsHttpBinding或自定义绑定来连接您的设备。
使用内置方法扫描设备。添加对System.ServiceModel.Discovery程序集的引用,此代码将扫描您的网络以查找设备。必须实现对onvif设备的一些过滤。
private FindResponse ScanNetwork(string scopeMathcBy, int iTimeoutMilliseconds)
{
ServicePointManager.Expect100Continue = false;
UdpDiscoveryEndpoint oUdpDiscoveryEndpoint = new UdpDiscoveryEndpoint(DiscoveryVersion.WSDiscoveryApril2005);
DiscoveryClient oDiscoveryClient = new DiscoveryClient(oUdpDiscoveryEndpoint);
// Create FindCriteria
var findCriteria = new FindCriteria
{
Duration = TimeSpan.FromMilliseconds(iTimeoutMilliseconds)
};
if (scopeMathcBy != null)
{
findCriteria.ScopeMatchBy = new Uri(scopeMathcBy);
}
var findResponse = oDiscoveryClient.Find(findCriteria);
return findResponse;
}
解决!问题出在包含顺序上。我重新安排了#include指令,并添加了一些需要的include。但是仍然有2个错误,很容易被删除,只是在查看生成的代码。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 为什么在这个代码结束循环中没有得到结束
- 在c代码之间共享数据的最佳方式
- 使用wsdl2cpp生成工作的Onvif代码