Tengo un componente COM de VC++ con una biblioteca de tipos. La biblioteca de tipo de este componente declara una interfaz y una clase co:Los nombres en el conjunto de interoperabilidad tienen mayúsculas incorrectas
[
object,
uuid(ActualUuidHere),
dual,
nonextensible,
oleautomation,
hidden,
helpstring(ActualHelpStringHere)
]
interface IWorkflow : IDispatch
{
//irrelevant properties here
}
[
uuid(ActualClassIdHere),
noncreatable
]
coclass Workflow {
[default] interface IWorkflow;
};
el fin de consumir el componente desde una aplicación C# agrego una referencia al proyecto C# y un ensamblado de interoperabilidad se genera.
En el Examinador de objetos de Visual Studio 2003 veo que la interoperabilidad contiene:
public abstract interface IWorkflow;
public abstract interface workflow : IWorkflow;
public class workflowClass : System.Object;
Está claro que que por alguna razón el nombre de la clase y la interfaz se diferencian en las mayúsculas. Esto no sucede con otras 20 interfaces declaradas en la misma biblioteca de tipos, para ellas ISomething
corresponde a Something
y SomethingClass
.
He revisado los archivos .idl del proyecto; el identificador Workflow
no se usa en ningún otro lado.
¿Cuál es el motivo de este comportamiento extraño y cómo se puede solucionar?
Revisé todos los archivos IDL del proyecto; el nombre no se usa en ningún otro lado. – sharptooth
Gracias. Estaba teniendo este problema, y tu solución lo solucionó. – Grokys