Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# iTunes SDK COM在一台计算机上找到,但在另一台计算机上找不到_C#_Com_Compilation_Itunes Sdk - Fatal编程技术网

C# iTunes SDK COM在一台计算机上找到,但在另一台计算机上找不到

C# iTunes SDK COM在一台计算机上找到,但在另一台计算机上找不到,c#,com,compilation,itunes-sdk,C#,Com,Compilation,Itunes Sdk,我正在创建一个可以做多种事情的程序,其中之一就是使用iTunes COM打开iTunes并播放音乐。我正在编译的一台机器有iTunes,另一台没有。在一个没有iTunes的版本中,我必须注释掉代码,但我想知道是否有一种方法,尽管是ifdef或其他什么,我仍然可以编译而不必这样做 编辑:关键是我可以在两台机器上编译,而不必在没有iTunes的机器上安装iTunes。您可以添加代码吗?您应该能够很好地运行相同的代码,当您尝试创建iTunes接口对象时,只会出现COM错误。你不能优雅地处理那个错误吗?

我正在创建一个可以做多种事情的程序,其中之一就是使用iTunes COM打开iTunes并播放音乐。我正在编译的一台机器有iTunes,另一台没有。在一个没有iTunes的版本中,我必须注释掉代码,但我想知道是否有一种方法,尽管是ifdef或其他什么,我仍然可以编译而不必这样做


编辑:关键是我可以在两台机器上编译,而不必在没有iTunes的机器上安装iTunes。

您可以添加代码吗?您应该能够很好地运行相同的代码,当您尝试创建iTunes接口对象时,只会出现COM错误。你不能优雅地处理那个错误吗?或者你的意思是如何在两台机器上编译相同的代码?您可能可以从iTunes COM对象中提取一个接口定义a.tlb,并根据构建机器是否安装了它来检查它以进行构建。@Rup是的,我希望能够在这两台机器上进行编译。我不确定我是否理解如何提取接口定义。你有什么可以指给我看的读物吗?哎呀,我没想到这是C。在这种情况下,您不需要typelib,您可以在不存在COM对象的情况下根据它进行编译。或者您可以(这是存储在提供COM对象的DLL中的COM对象和接口定义),并将其添加到您的项目中,并在构建时生成互操作程序集。我相信是的,尽管从我实际使用COM已经有几年了(以及.NET工具的几个版本)。