送分了,com新手的小小疑惑,在线等
[ProgId(yyy.GUID)]
[Guid( "69BB9CE7-2F6D-4a95-9A4B-1DC701EE8094 ")]
[ComVisible(true)]
public class MarkerS
{
[ComRegisterFunction()]
[ComVisible(false)]
static void RegisterFunction(Type registerType)
{
string regKey = string.Format( "HKEY_CLASSES_ROOT\\CLSID\\{{{0}}} ",
registerType.GUID);
Marker.Register(regKey);
}
}
以上代码,我的问题
1:ProgId与guid是什么关系?是通过ProgId得到guid再通过guid获得对象?
2:registerType是否就是MarkerS类?registerType.GUID就是MarkerS类的GUID成员?
3:[ComVisible]到底是什么意思?连public都不公开?
谢谢!
------解决方案--------------------看不懂.我是菜鸟
------解决方案--------------------1.progid和guid的关系就像域名和IP的关系.progid更便于记忆
实际使用时是先在注册表中先查到progid/guid,再查到指定的com dll.
然后再来构造com对象.
2.本人在.net中极少用到com,不清楚.
3.public是指对CLR引用时公开,仅局限于在.net中.
而加上comvisible后就可以对所有使用了你这个对象的代码公开.
嗯...
就算在vb6/vbs/js/c++/asm里也可以调用它哦~
本人对com也不是很熟...可能理解有错的地方.待各位牛人指正~
------解决方案--------------------看不懂.我是菜鸟