我用C++/CLI建了一个工程,在Form1里面添加了一个activeX控件,现在我想在非托管的代码里面能够直接调用Form1这个容器里面的控件的方法,有没有什么办法可以实现?非托管的代码不在同一个命名空间,也不在同一个文件中.
以前用MFC很方便就实现了,因为MFC支持全局的指针.但Form^不支持全局的.
查了好久的资料,觉得可能用GCHandle来实现或许有可能.尝试了很多次,均不能成功实现.就上来请教了.
我自学C++以及C++/CLI,请各位过来人指点一二.感激不尽.
------解决方案--------------------------------------------------------
引用Form1的命名空间,并将Activex控件设为public,即可访问。
------解决方案--------------------------------------------------------
static Form1^ f1;
.....
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
还有别的方式,记录那个窗口的handler
intptr h = form1.handler
把它传个外部
在别的函数里通过
Form1::FromHandle(h); 获取那个窗体
总之很多,不要把思维局限