2011-10-03 27 views
4

我已經在純C項目下面的代碼調用CoInitializeSecurity。間接從.NET應用程序

如果我將項目構建爲靜態庫(.lib),在.NET應用程序中使用它並調用該方法,則CoInitializeSecurity將返回錯誤1008:試圖引用不存在的標記。

回答

3

這是expected behavior因爲CoInitializeSecurity並不意味着從CLR內執行的代碼調用。

如果你有一個明確的需要調用CoInitializeSecurity,那麼你需要host the CLR yourself,並呼籲CoInitializeSecurity CLR是在這個過程開始之前。

+0

這同樣適用於CoSetProxyBlanket嗎? –

+0

@FranciscoSilva:是的,'CoInitializeSecurity'和['CoSetProxyBlanket'](http://msdn.microsoft.com/zh-cn/library/aa910618.aspx)被列爲[「有問題」,可以從CLR中調用](http://msdn.microsoft.com/en-us/library/bb385973(v = VS.90)的.aspx)。 – casperOne