现有主窗体Main,
DLL包中有Form1,Form2Main运行后半入DLL包,
现在我想Form2想发消息到Form1,但是收不到消息,发给主窗体Main可以收到 
代码如下:
发Form1,这失败
H := FindWindow('Tform1',Nil);,,得到H=0
postMessage(H,MessageIDNo,1,1)发Main,这正常
H := FindWindow('Tmain',Nil);
postMessage(H,MessageIDNo,1,1)

解决方案 »

  1.   

    H=0表示没有找到Tform1的实例
    当然无法响应了!
    可能Tform1根本没有创建对应的实例!
    不过Tform1和Tform2同在一个dll下互相引用单元直接调用即可!
    不明白为什么一定要发消息!
    呵呵!
      

  2.   

    H := FindWindow('Tform1',Nil);,,得到H=0
    至少先把句柄找到再说吧
      

  3.   


    我表达错了,
    应该DLL2,发消息到DDL1里在Form1
      

  4.   

    你都知道h=0了,就是没找到这个窗口的句柄,发送消息当然失败。
    主窗口当然能找到句柄,除非程序关闭了才找不到。
    跟dll通讯用其他方式,如内存映射、管道
      

  5.   

    两个dll在被主程序加载时就实例化窗体!
    然后再根据需要显示出来!
    应该就可以互相发送消息了!
    呵呵!为啥不从特定的基类继承下来
    或者实现相应的接口
    这样调用起来不是更方便!
    当然发消息也可以!
    呵呵!