我这两天在用VC(其实只用到C语法)做一个DLL,其间遇到不少问题,呵呵,C我不太熟悉,被逼着做的。
1。WIN32DLL,常规DLL,扩展DLL到底怎么区别,我了一些书上的说明,还是不太明白,请简要说明。
 要在非C语言程序中调用,是不是只能用WIN32DLL?
2。做WIN32DLL可以用类吗?我要在我的DLL里用到定时控件(应该用SetTimer函数),WIN32DLL能实现吗?不行的话,是不是要将我的DLL改做成常规DLL?
3。怎么为static text控件赋值?如我一static text名为IDC_STATIC_SHOW,我是这么赋值的“IDC_STATICSHOW=str;”其实str是字符串,为什么通不过?

解决方案 »

  1.   


    双击一个文件的时候,
    和该文件关联的程序会自动运行,
    请问在关联的应用程序中怎样获得该文件名?(不用mfc的doc-view) 
    谢谢!
    --- 初来乍到,还不会发帖,只好借鸡下蛋,恳请原谅!
      

  2.   

    一楼按规矩应该拖出去埋掉……MFC的扩展DLL似乎可以导出类,其他的两个不行。可以使用类,但是不能导出类,另外使用到C++的STL还需要小心内存的问题。不过控件似乎就不能这么用了吧?SetTimer可以调用,但是控件和窗体是在一起的东西,恐怕是用不了了什么叫为控件赋值?你要改什么?如果只是要修改文本的话,只要GetDlgItem(srcid)->SetWindowText("str");这样就可以了,srcid是你的控件的ID。
      

  3.   

    扩展DLL似乎还可以把类作为返回值……其他类型的DLL似乎不行
      

  4.   

    问题得不到解决,常规DLL中加入对话框如何做?
      

  5.   

    win32 dll, mfc regular dll导出的接口是C接口,可以被其他语言使用,他们是可以导出类的
    MFC extend dll可以导出从MFC派生的类,但只能被VC用在常规DLL中,加入对话框就象在EXE中一样,只不过调用之前要切换资源,调用后要切换回原来的资源
      

  6.   

    我建议你用MFC 规则DLL,用定时器一般要用对话框
      

  7.   

    gohappy_1999(碧水蓝天)
    在常规DLL中,加入对话框就象在EXE中一样,只不过调用之前要切换资源,调用后要切换回原来的资源怎么切换资源呢?
      

  8.   

    HINSTANCE hres = AfxGetRescourceHandle();
    AfxSetResourceHandle(theApp.m_hInstance);
    CMyDlg pDlg = new CMyDlg;
    pDlg->Create(..)
    AfxSetRescoureHandle(hres)