我試圖進入COM互操作COM互操作,主場迎戰的DllImport添加引用
因此,有一個簡單的例子:
SpeechLib.SpVoice voice = new SpVoice();
voice.Speak("Hello sucker!",SpeechVoiceSpeakFlags.SVSFDefault);
當然我要補充參考%WINDIR %\ system32 \ speech \ common \ sapi.dll之前,VS會將Interop.SpeechLib.dll添加到項目文件夾中,現在我必須使用我的簡單4kb應用程序分發這個200kb庫。
我可以使用[DllImport]而不是添加引用,因爲在大多數情況下,語音庫已經存在於客戶端的計算機上?
你能告訴我如何使用DllImport技術重寫上面的代碼嗎?
引用將無法正常工作 - 託管代碼依賴於互操作。 – sharptooth 2016-04-29 11:18:08
這會起作用,但不是將'Copy Local'設置爲'false',而是將'Embed Interop Types'設置爲true,並且您使用的類型將成爲程序集的一部分,在這種情況下'Copy Local'變爲'false'並且不能改變。 – nurchi 2016-08-31 20:43:03