我试图进入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