我有一個小的activex控件在Windows mobile 6上運行。我能夠使用api CreateProcessW當我硬編碼應用程序名稱L「\ blah \ blah.exe「。BSTR到LPCWSTR轉換時調用CreateProcessW(Mobile MFC)
當我調用另一個API返回一個包含我想傳遞給CreateProcessW的應用程序的BSTR時,它不工作。我已經檢查並填充了應用程序字符串,但我在猜測我在BSTR和LPCWSTR(Wide cha error?)之間存在轉換問題。我試圖用OLE2CW和OLE2W轉換它。
我不是VC專家,我只需要得到這個工作,所以我的問題是。
- 當我通過API接收到一個BSTR時,如何將它轉換爲能夠將它傳遞給CreateProcessW中的Application參數?這是Windows Mobile 6(Wince 5.2)。代碼片段會很好。
代碼示例無需任何轉換:
BSTR app = NULL;
_host->GetAppString(_T("app"),&app);
CreateProcessW(app,L"22222",0,0,0,0,0,0,0,&processInformation);
的字符集是Unicode。
感謝
沒有必要轉換BSTR,它是兼容的與LPCWSTR。在添加適當的錯誤處理之後,這將不會變得更好,因此您*知道*爲什麼失敗。 –
嗨漢斯,我確實添加了錯誤handeling,但沒有;不要在頂部添加它。我得到的唯一錯誤是系統找不到指定的文件。我相信一個BSTR字符串與Windows CE系統上不是32位的LPCWSTR不完全兼容。 – Rikardt
「文件未找到」是一個非常常見的錯誤,我們可以幫助您找到該文件。確保它是完整路徑,如c:\ foo \ bar \ baz.exe。你當然應該在你的問題中記錄下來。不,CE是32位的。 –