我用vc写了一个dll,里面用到了CSocket类,在pb下调用不成功,把CSocket类去了就可以调用了,为什么?

解决方案 »

  1.   

    to:Ah(蓝过天)
    什么意思,我不明白
      

  2.   

    直接用普通的socket就行了,肯定不会有这些问题
    不要用csocket,我一直觉得mfc很烂,问题多,真搞不懂为什么还这么多人用
      

  3.   

    to :zj_ok(zj_ok)现在再改socket的话,改动很多的
    如果我就用CSocket,有没有办法啊
      

  4.   

    是这样的
    C++对象从DLL 中EXPORT时存在一个问题
    C ++的对象是编译时会由编译器为对象和其中的重载函数
    命名一个名字,而每个编译器使用的命名规则是不同的
    这就意味着vc 编译的含有C++对象的Dll,往往不能被其它公司的开发程序调用
    当然反之亦然。所以连MS也不提倡在dLL中输出一个对象。而C语言语法中不存在函数重载的问题就可以通过。DEF文件强制输出一个名字
    对重载的C++对象呵呵你需要在库中找出对应的函数名字
    并在自己的程序中设置实际的名字
    这有点繁所以不如不用DLL输出C++对象
      

  5.   

    to:baisha(努力活着) 我创建的是 动态链接库使用共享的MFC Dll里面的函数是send()
    我该怎么改呢
      

  6.   

    回复人: zshdn(妩媚) ( ) 信誉:100  2002-10-31 17:04:00  得分:0 
     
     
      to:Ah(蓝过天)
    什么意思,我不明白
      
     
    ==============================================================
    也就是CSocket在另一个dll里面,而这个dll可能在pb下不能调用。
      

  7.   

    CSocket是mfc的类,只能由mfc开发的程序调用,如果要用pb调用就应该用API函数
      

  8.   

    如果你的机子里装了VC应该没有问题阿. CSocket的实现要MFC的DLL支持.