对于WinRT,IDL现在支持如下构造:
[marshaling_behavior(agile)]
[threading(both)]
[activatable(0x06020000)]
[version(0x06020000)]
[static(Windows.Networking.Sockets.IDatagramSocketStatics, 0x06020000)]
runtimeclass DatagramSocket
{
[default] interface Windows.Networking.Sockets.IDatagramSocket;
interface Windows.Foundation.IClosable;
}
Run Code Online (Sandbox Code Playgroud)
我对这个static属性感到好奇.这是什么意思?它如何与主体内部列出的接口相关runtimeclass?
我有一个关于嵌套模板和赋值运算符重写的问题.假设我想要一个引用计数类模板_reference.这个_reference现在只是保存一个指向ref-counting对象的指针.现在的问题是,只要我使用简单的类或结构进行此操作,这一切都可以正常工作.例如._reference ...,
但是现在我想创建一个类模板,它是对std-vector的引用,它转发了它所拥有的类.
不,我只是发布代码:(它现在没有做引用和那些东西,它只是提取我遇到的问题)
template <typename T>
class _reference
{
private:
T* p_;
public:
// !!! this assignment seems only to work, when T is no class template already...
void operator= (T* r)
{
p_ = r;
}
// WHILE this ALWAYS works as well...
void simplySetIt (T* r)
{
p_ = r;
}
};
template <typename T>
class _ref_vector : public _reference<vector<T> >
{
};
void test2 ()
{
_reference<vector<long> > ref_ptr2;
_ref_vector<long> ref_ptr3;
ref_ptr2 = new vector<long>; // …Run Code Online (Sandbox Code Playgroud) 我正在使用一个开源的json解析器,但在编译它时给我解除引用警告.
MyProject/Classes/SBJSON.m:403:13潜在的空取消引用.根据"创建和返回NSError对象"中的编码标准,参数"error"可以为null
- (BOOL)scanValue:(NSObject **)o error:(NSError **)error
{
skipWhitespace(c);
switch (*c++) {
case '{':
return [self scanRestOfDictionary:(NSMutableDictionary **)o error:error];
break;
case '[':
return [self scanRestOfArray:(NSMutableArray **)o error:error];
break;
case '"':
return [self scanRestOfString:(NSMutableString **)o error:error];
break;
case 'f':
return [self scanRestOfFalse:(NSNumber **)o error:error];
break;
case 't':
return [self scanRestOfTrue:(NSNumber **)o error:error];
break;
case 'n':
return [self scanRestOfNull:(NSNull **)o error:error];
break;
case '-':
case '0'...'9':
c--; // cannot verify number correctly without the first character
return [self scanNumber:(NSNumber **)o error:error];
break; …Run Code Online (Sandbox Code Playgroud) 在Visual Studio 2012附带的MS IDL版本中,对WinRT的支持添加了以下构造:
[activatable(Windows.Networking.Sockets.IControlChannelTriggerFactory,
0x06020000)]
[threading(mta)]
[marshaling_behavior(agile)]
[version(0x06020000)]
runtimeclass ControlChannelTrigger
{
[default] interface Windows.Networking.Sockets.IControlChannelTrigger;
interface Windows.Foundation.IClosable;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用IMetaDataImport来分析winmd文件中的所有类型.如何找出"运行时类"实现的接口以及默认接口的接口?
我正在使用vc ++并使用CreateThread函数创建一个线程.可以在完成任务后返回后重新启动它.
idl ×2
c++ ×1
dereference ×1
interface ×1
ios4 ×1
ipad ×1
memory-leaks ×1
nested ×1
reflection ×1
templates ×1
visual-c++ ×1