0
我有一個返回類型爲字符串(甚至是對象)的屬性,該屬性暴露在COm中,作爲get_Name和put_Name放入.tlh文件中。如何訪問它並在非託管C++中設置此屬性。 直到現在.. 在C#方面, 我有這個屬性暴露通過與DispId(1)的接口,並在繼承該接口的類中實現它。 在C++(非託管側) 我創建使用以下語法一個接口指針:使用COM Interop訪問來自非託管C++的c#屬性
ManagedDLL::ICalculatorPtr pICalculator;//Interface having the property
hr = pICalculator.CreateInstance(__uuidof(ManagedDLL::Calculator));//1. Calculator implements property of Icalculator & hr is of HRESULT type
pICalculator->put_Name="New1";
pICalculator->put_Name="New2";//below error comes here :
錯誤C2659:「=」:功能作爲左操作數 我知道這個錯誤的意思。 僅供參考:當我的Name屬性設置爲非託管C++時,我想在c#中引發一個事件。
我知道!所以我也試過了。但它期望BSTR。你能告訴我如何將char *轉換爲BSTR。我也去了這個鏈接。查看各種方法,但實現它卻徒勞無功。 http://social.msdn.microsoft.com/Forums/vstudio/en-US/081d0d02-caa3-4700-9bef-7cbc248370af/visual-c-how-to-convert-const-char-to-bstr –
已更新回答。 – Dennis
_TEXT是一個代替什麼的宏?肯定會給我一個錯誤未聲明的標識符..好嗎?我是COM的新手。 –