[Issue 1434] DMD COM design flaw
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Aug 20 02:41:37 PDT 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1434
------- Comment #3 from davidl at 126.com 2007-08-20 04:41 -------
the following is a bit more clear:
import std.stdio;
interface IUnknown
{
void hello();
}
class k:IUnknown
{
invariant
{
writefln("hello");
}
this()
{
writefln("this class!");
}
void hello()
{
writefln("this class!");
}
}
void main()
{
// following only illustrate the C side instantiating a COM object
k v=new k;
Object o=v;
ClassInfo c = o.classinfo;
int *m=cast(int*)(&c.classInvariant);
*m= 1;
// now we can a COM object , we call through our interface
IUnknown t=v;
t.hello(); // invariants calling?? C side code could ruin the field
like the code above
}
--
More information about the Digitalmars-d-bugs
mailing list