繁体   English   中英

对于安装在两台不同计算机上的同一程序,CLSID可以不同吗?

[英]Can a CLSID be different for the same program installed on two different machines?

我正在使用comtypes为某个com库生成包装器。 我在某些方面遇到了某些问题,这些问题无法正确生成。 我可以通过手动执行丢失的工作来解决此问题。 但是,我可以依靠CLSID不会改变的事实吗?

让我们说:

我使用com库Foo 1.0安装了一个程序,现在我在另一台PC上安装了与该程序完全相同的版本,接口的CLSID是否会更改?

这可能是一个非常愚蠢的问题。

至少应该不更改CLSID。 自然,程序可以做很多违反规则的愚蠢事情。 但是:由于CLSID是类的加载方式,因此更改的CLSID意味着类的USING程序也必须使用更改的CLSID。

Su,您的假设是正确的-如果在两台计算机上安装了相同版本的相同程序,则可以安全地假定CLSID不变。

甚至在版本之间也应该这样做。...但是,如果库Foo 1.0仅由一个程序使用,则程序员可能会因为更改了CLSID而逃脱了。 但是,它不应该改变。

免责声明:做了大量的COM,但从未使用python。

COM接口的UUID是接口定义的一部分。 每台机器上的所有时间都应该相同。

同样,在ATL COM领域中,类具有CLSID,接口具有IID。 它们都具有UUID(或可能的GUID)。 不确定python。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM