Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » Can't switch project setting from Use MFC in a "Shared DLL" to "Static Library" Collapse All
Subject Author Date
Jia Hong Li Jul 2, 2007 - 11:07 AM

========================================================================================
Original project setting is Use MFC in a "Shared DLL", and running well
When I change setting to Use MFC in a "Static Library", got some errors below:
========================================================================================
Error    1    error C2039: ’classCExtNCW’ : is not a member of ’CExtNCW<CFrameWnd>’    ...\MainFrm.cpp    24    
Error    2    error C2065: ’classCExtNCW’ : undeclared identifier    ...\MainFrm.cpp    24    
Error    3    error C2275: ’CFrameWnd’ : illegal use of this type as an expression    ...\MainFrm.cpp    24    
Error    4    error C2059: syntax error : ’)’    ...\MainFrm.cpp    24    
Error    5    error C2143: syntax error : missing ’;’ before ’}’    ...\MainFrm.cpp    24    
Error    6    error C2059: syntax error : ’}’    ...\MainFrm.cpp    24    
Error    7    fatal error C1903: unable to recover from previous error(s); stopping compilation    ...\MainFrm.cpp    78    

========================================================================================
Source Code
========================================================================================
// CMainFrame

IMPLEMENT_DYNCREATE ( CMainFrame, CExtNCW < CFrameWnd > ) .........................................................( Line 24 )

BEGIN_MESSAGE_MAP ( CMainFrame, CExtNCW < CFrameWnd > )
    ON_WM_CREATE()
    // Global help commands
    ON_COMMAND_EX ( ID_VIEW_MENUBAR, OnBarCheck )
    ON_UPDATE_COMMAND_UI ( ID_VIEW_MENUBAR, OnUpdateControlBarMenu )
    ON_COMMAND_EX ( ID_VIEW_UI_LOOK_BAR, OnBarCheck )
    ON_UPDATE_COMMAND_UI ( ID_VIEW_UI_LOOK_BAR, OnUpdateControlBarMenu )
    ON_COMMAND ( ID_HELP_FINDER, &CFrameWnd::OnHelpFinder )
    ON_COMMAND ( ID_HELP, &CFrameWnd::OnHelp )
    ON_COMMAND ( ID_CONTEXT_HELP, &CFrameWnd::OnContextHelp )
    ON_COMMAND ( ID_DEFAULT_HELP, &CFrameWnd::OnHelpFinder )

    ON_COMMAND ( ID_FILE_OPEN_IN_BROWSER, &CMainFrame::OnFileOpenInBrowser )

    ON_COMMAND ( ID_VIEW_PREVIEW_BAR, &CMainFrame::OnPreviewBar )
    ON_UPDATE_COMMAND_UI ( ID_VIEW_PREVIEW_BAR, &CMainFrame::OnUpdatePreviewBar )
    ON_COMMAND ( ID_VIEW_DIRECTORY_BAR, &CMainFrame::OnDirectoryBar )
    ON_UPDATE_COMMAND_UI ( ID_VIEW_DIRECTORY_BAR, &CMainFrame::OnUpdateDirectoryBar )

    ON_COMMAND ( ID_VIEW_TOOLBAR_BROWSER, &CMainFrame::OnViewToolbarBrowser )
    ON_UPDATE_COMMAND_UI ( ID_VIEW_TOOLBAR_BROWSER, &CMainFrame::OnUpdateViewToolbarBrowser )
    ON_WM_CLOSE()

    ON_COMMAND ( ID_FULL_SCREEN, &CMainFrame::OnFullScreen )
    ON_COMMAND ( ID_FILE_VIEWER, &CMainFrame::OnSwitchBrowser2Viewer )
    ON_COMMAND ( ID_PROGRAM_BROWSE, &CMainFrame::OnSwitchViewer2Browser )
    ON_UPDATE_COMMAND_UI ( ID_FULL_SCREEN, &CMainFrame::OnUpdateFullScreen )
    ON_COMMAND ( ID_FILE_DELETE, &CMainFrame::OnFileDelete )
    ON_COMMAND ( ID_VIEW_SLIDE_SHOW, &CMainFrame::OnSlideShow )
    ON_COMMAND ( ID_VIEW_OPTION, &CMainFrame::OnViewOption )
    ON_COMMAND ( ID_SET_WALLPAPER, &CMainFrame::OnSetWallpaper )
    ON_COMMAND ( ID_FILE_RENAME, &CMainFrame::OnFileRename )
    ON_COMMAND ( ID_FILE_PRINT_PREVIEW, &CMainFrame::OnFilePrintPreview )

    //ON_COMMAND(ID_FILE_RESET_RECENT_PATH, OnFileResetRecentPath)
    ON_NOTIFY ( TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnToolbarDropDown )
    ON_COMMAND ( ID_EDIT_SET_WALLPAPER, OnEditSetWallpaper )

    ON_COMMAND_EX ( ID_VIEW_RESIZABLEBAR_TREE, OnBarCheck )
    ON_UPDATE_COMMAND_UI ( ID_VIEW_RESIZABLEBAR_TREE, OnUpdateControlBarMenu )
    ON_COMMAND_EX ( ID_VIEW_RESIZABLEBAR_PREVIEW, OnBarCheck )
    ON_UPDATE_COMMAND_UI ( ID_VIEW_RESIZABLEBAR_PREVIEW, OnUpdateControlBarMenu )
    ON_COMMAND_EX ( IDR_TOOLBAR_FULLSCREEN, OnBarCheck )
    ON_UPDATE_COMMAND_UI ( IDR_TOOLBAR_FULLSCREEN, OnUpdateControlBarMenu )
    ON_COMMAND_EX ( IDR_MENU_VIEWER, OnBarCheck )
    ON_UPDATE_COMMAND_UI ( IDR_MENU_VIEWER, OnUpdateControlBarMenu )
    ON_WM_GETMINMAXINFO()
    ON_WM_SYSCOMMAND()
    ON_REGISTERED_MESSAGE (
        CExtPopupMenuWnd::g_nMsgPrepareMenu,
        OnExtMenuPrepare
    )
END_MESSAGE_MAP() ..................................................................................................................................( Line 78 )

Jia Hong Li Jul 2, 2007 - 12:22 PM

PS:
for project Property setting / Configuration Properties / Linker / Input / Additional Dependencies
I set ".../ProfUIS270u.lib" before, I set ".../ProfUIS270su.lib" now

Technical Support Jul 3, 2007 - 2:34 AM

You should include only (IMPORTANT) one file, which is Prof-UIS.h, in your StdAfx.h file. All the appropriate Prof-UIS libraries will be linked with your project automatically. So you should remove any explicit references to Prof-UIS libraries from the linker settings.

Jia Hong Li Jul 9, 2007 - 2:52 PM

Thanks, it work fine for me.
But now I switch Back to "Use MFC in a Shared DLL"

It VS2005 will say :
This application has failed to start because ProfUIS270u.dll was not found. Re-installing the application may fix this problem.

PS: I have set up "...\Prof-UIS\Bin_800" in Tools > Options > Project and Solutions > VC++ Dir > Library.

What should I do for switching back ?

Technical Support Jul 10, 2007 - 11:10 AM

The ProfUIS270u.dll file corresponds to the Release Unicode configuration of Prof-UIS. So please open the ProfUISDLL project and compile the "Win32 Unicode Release" configuration.



Jia Hong Li Jul 2, 2007 - 11:25 AM

PS: I switch from Use MFC in a "Shared DLL" to "Static Library", but leave "link to ProfUIS by static library" the same

my other ProfUIS relative settting:

====================================================================================
...\Prof-UIS\Include\Prof-UIS.h
====================================================================================
...
#define __EXT_PROFUIS_STATIC_LINK_WITH_RESOURCES
...

====================================================================================
*.rc2 of our project
====================================================================================
/////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here...
#if ( !(defined _AFXDLL && !defined __STATPROFUIS_WITH_DLLMFC__) )
#include <Resources/Resource.rc>
#endif
/////////////////////////////////////////////////////////////////////////////

Jia Hong Li Jul 2, 2007 - 11:10 AM

How could I fix this problem ?

Thanks a lot