MSDATGRD.OCX 不需要添加, 直接注册后在程序中用就行了

解决方案 »

  1.   

    回1楼:
    如果不在Link中添加这个控件,编译时就会报以下的错误:
    Linking...
    FristDlg.obj : error LNK2001: unresolved external symbol "public: virtual struct CRuntimeClass * __thiscall CDataGrid::GetRuntimeClass(void)const " (?GetRuntimeClass@CDataGrid@@UBEPAUCRuntimeClass@@XZ)
    Debug/Frist.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.Frist.exe - 2 error(s), 0 warning(s)
      

  2.   

    因为要使用DBgrid控件~~~别人说要用到MSDATGRD.OCX~~~
      

  3.   

    不一定是连接的问题,如果你编程中有疏忽比如有一个函数只有声明而没有函数实体,或在消息映射表中写的函数名不对都有可能造成上面的错误.
    应该是不关MSDATGRD.OCX的事。
      

  4.   

    你应该是从ActiveX Control gallery里把这个控件添加到你的对话框CFristDlg上的吧?这时候, ClassWizard会自动为你生成相应的类, 比如这里的CDataGrid, 通过它就可以操控控件了, 就是说你可以一行代码也不用写, 把那个控件拽到对话框上, 然后编译就可以运行了呀.这里显示LINKER找不到CDataGrid::GetRuntimeClass这个方法的定义, 你看看CDataGrid的.H和CPP文件, 这个方法是否实现了, 一搬不会有这种问题的.
      

  5.   

    CDataGrid不是你自己写的, 对吧?