COleControl::SetNotSupported再vs2008中封装在哪个dll中?  就是在afxctl.h中定义那个COleControl::SetNotSupported

解决方案 »

  1.   

    MFCXX.dll中函数的实现
    //ctlprop.cpp文件
    void COleControl::SetNotSupported()
    {
    ThrowError(CTL_E_SETNOTSUPPORTED, AFX_IDP_E_SETNOTSUPPORTED);
    }
      

  2.   


    如果我是vs2008,CE上  应该用哪个MFCXX.dll?是MFC90U.dll?
      

  3.   

    你有这些平台的MFC源代码,有的话自己去查找一下不就行了。
    别告诉我你不会find
      

  4.   

    请问高人: 我写一个控件(vs2008),然后有一个属性这样:
    DISP_PROPERTY_EX(CMaCtrl, "Write", GetWrite, SetNotSupported, VT_R8)
    也就是只读的属性。 然后我在winCE600上通过这样调用:
    CComDispatchDriver pDisp;
    hr = pDisp.PutProperty(dispID, &tVar); //也就是给这个属性赋值,这时会异常退出
    如果我不用Use MFC in Share DLL,而用Use MFC in static library的话就不会出现异常。能否帮忙诊断下,谢谢
      

  5.   

    1.你的pDisp变量赋值了没? 如何赋值的?
    2.dispID、tVar这两个参数是如何设置的?是否设置争取

      

  6.   


    这两个都没问题  我现在发现 如果在wince600上 只要给控件一个只读属性(只读属性通过SetNotSupport函数设定)赋值  且控件通过Use MFC in share dll  那么就会在ce上crash.
    我觉得应该是系统的问题  
    另外,CE上有mfc90u.dll 和 mfc90ud.dll 这两个都有SetNotSupported的实现   应该不是缺dll的问题
      

  7.   

    你的GetWrite, SetNotSupported方法在odl文件中定义了没有?使用CComDispatchDriver调用你的控件的方法,必须在odl或idl相应的接口中定义相应的方法才行。另外DISP_PROPERTY_EX宏中对于的两个函数方法名字一般是相似的名字,除了前缀get、put不一样
      

  8.   

    SetNotSupported 是将该属性设定为只读  也就是不允许设定该属性的值   SetNotSupported 就是COleControl::SetNotSupported