Problems with Reflection in Static library

Mandeep Singh Brar mandeep at brars.co.in
Fri Dec 17 20:08:40 PST 2010


Hi,

Please excuse for a longish mail, but i am putting the complete question.

I have a class A in module testD as follows

module testD;
import std.stdio;
public class A {
	public this() {
		writeln("const");
	}
	public void a(string l, int k) {
		writeln("Hello B.a", l, k);
	}
}

I have another file which uses this class as follows:

module user;
import std.stdio;

int main() {
	Object obj = Object.factory("testD.A");
	if(obj is null)
		writeln("null object");
	else
		writeln("object created");
	return 0;
}

When i compile the class A as "dmd -c -of testD testD.d" and the second file as "dmd user.d testD",
the example works fine and the object gets created.

But When i compile the class A as "dmd -c -lib testD.d" and the second file as "dmd user.d testD.a",
the example gives me a null object.

The Object.factory method does not seem to work if my class has been compiled as a static library.
Can you please let me know how to solve this. I have tried replacing public with export for class
testD, but that does not help.

Thanks for reading the mail.
Mandeep


More information about the Digitalmars-d-learn mailing list