目前,我的很多代码都广泛使用祖先来放置和获取对象.但是,我正在寻找改变一些东西.
我最初认为,如果你知道你正在寻找的实体的祖先是谁,那么祖先会更快地进行查询.但我认为事实证明,祖先对交易支持大多有用.我没有使用交易,所以我想知道祖先在这里是否比这更有帮助.
我所拥有的是一个用户实体,以及许多其他实体,例如评论,标签,朋友.用户可以创建许多评论,标签和朋友,因此每当用户这样做时,我将所有这些新创建的对象的祖先设置为用户.
因此,当我创建一个Comment时,我将祖先设置为用户:
comment = Comment(aUser, key_name = commentId)
Run Code Online (Sandbox Code Playgroud)
现在,我这样做的唯一原因是严格用于查询目的.我认为当我想要获得某个用户的所有评论以获得共同祖先的所有评论而不是查询authorEmail = userEmail的所有评论时会更快.
因此,当我想获得某个用户的所有评论时,我会:
commentQuery = db.GqlQuery('SELECT * FROM Comment WHERE ANCESTOR IS :1', userKey)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,这是一个很好的使用祖先?是否每个Comment都有一个引用创建注释的User对象的ReferenceProperty,并按此过滤?
(另外,我的想法是使用祖先而不是索引的ReferenceProperty可以节省写入成本.我在这里错了吗?)
在MSDN上,我找到了以下两个属性的描述:
PreserveSig将PreserveSig字段设置为true,以使用HRESULT或retval值直接转换非托管签名; 将其设置为false以自动将HRESULT或retval值转换为异常.默认情况下,PreserveSig字段为true.
SetLastError使调用者能够使用Marshal.GetLastWin32Error API函数来确定执行方法时是否发生错误.在Visual Basic中,默认值为true(这会增加一些开销); 在C#和C++中,默认值为false.
我的问题是:这两者如何相互关联?假设我将PreserveSig设置为'false' - 这意味着我应该将HRESULT转换为异常 - 如果非托管函数返回指示错误或没有错误发生的整数,那么如何将其转换为异常?
另外,为什么我需要调用GetLastWin32Error方法,如果我以某种方式设法使用PreserveSig提取异常?
亲切的问候PK
我有一个由第三方生产的dll,它具有某种内部数据结构,将其大小限制为X元素.
所以基本上,它有一个以X为限制的队列.
现在从我所知道的DLL是每个进程,但是可以多次加载DLL吗?也许每个线程?在C#?或者在C++/CLI中?
我正在尝试加载本机c ++ dll.
我从这里找到了bat文件:
http://www.dostips.com/DtCodeBatchFiles.php#Batch.FindAndReplace
我想在这个蝙蝠之后运行另一个命令,但它不起作用.我想网站提供的代码一定有问题.任何人都可以给我一个线索?谢谢.
这是我在FeatureTree/SelectionTree中的应用程序安装程序的结构
应用程序核心
| _ _特征1
| _ _特征2
| _ _特征3
我想确保当用户选择Application Core时,他必须选择Feature 1,Feature 2或Feature 3中的至少一个.
我知道功能下的条件元素可能会有所帮助,但无法让它工作,任何人都在救援?
我刚刚开始使用WiX 3,无法弄清楚为什么它无法理解我的.wsx文件中的Icon属性.我收到错误消息:
错误2"产品:{95DB18C7-24DC-474D-B58C-DC91AFD912F3}"部分中未解决的符号'Icon:Sample.exe'的引用.
它抱怨的部分是:
<Shortcut Id="startmenuSample" Directory="ProgramMenuFolder" Name="Sample 1.0"
WorkingDirectory='INSTALLDIR' Icon="Sample.exe" IconIndex="0" Advertise="yes" />
Run Code Online (Sandbox Code Playgroud)
如果我评论该部分,安装程序工作正常.
我正在一个有很多图像的网站上工作(想想smugmug/flickr),根据我的阅读,flickr使用squid作为图像缓存.我的图像将存储在Amazon S3上,因此缓存服务器也有助于节省托管资金.我想通过以下配置听到它的想法是可行的.
这可以吗?我应该将域名指向运行清漆的服务器吗?
谢谢!
我只是试图通过SSL使用只有C来获取WinInet HTTP POST.我知道这是可能的.任何好的示例代码?
非常感谢!
编辑:以下代码似乎在使用WinHTTP的C++下正常工作,但我需要WinInet:
TCHAR szTemp[512] = {0};
BOOL bRet = FALSE;
HINTERNET hRequest = NULL;
HINTERNET hSession = NULL;
HINTERNET hConnect = NULL;
CERT_CONTEXT *pCert = {0};
HCERTSTORE hCertStore = NULL;
DWORD dwRet = 0;
DWORD dwLen = 0;
DWORD dwFlags = SECURITY_FLAG_IGNORE_CERT_CN_INVALID|
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID|
SECURITY_FLAG_IGNORE_UNKNOWN_CA;
CString szUserAgent("Mozilla/4.0 (compatible; MSIE 5.22)");
if ( m_csServer.GetLength() < 3 ) {
_stprintf_s( szTemp, 512, _T("Server name is invalid or empty") );
::MessageBox(NULL, szTemp, _T("ERROR"), MB_OK );
return;
}
hSession = WinHttpOpen(szUserAgent,
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, …Run Code Online (Sandbox Code Playgroud) C:\Documents and Settings\Administrator\Desktop
Run Code Online (Sandbox Code Playgroud)
我不想每次都输入上面的内容来引用桌面上的文件