2013-10-18 55 views
-3

打招呼,WELCOM每一個的Visual C++ 2012應用程序將無法在Windows XP下運行 - 更新

正在使用Visual C++ 2012最終與更新3,我有一個項目應該在XP包3 envirement執行,我改變工具集在這個博客 Windows XP Targeting with visual studio 2012

在我的Windows XP的解釋我的機器安裝svcedit.exe視覺2012更新3,但probleme是代碼無法運行,並告訴我沒有錯誤可言。

我真的沒有什麼問題是!

實施例 - 資源文件

的main.cpp

#include <WindowsX.h> 
#include <Windows.h> 
#include <tchar.h> 
#include <stdio.h> 

#include "resource1.h" 

#define my_PROCESS_MESSAGE(hWnd, message, fn) \ 
    case(message): \ 
     return(\ 
      SetDlgMsgResult(hWnd, uMsg, \ 
       HANDLE_##message((hWnd), (wParam), (lParam), (fn)))) \ 

LRESULT CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM); 
BOOL Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam); 
void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify); 

int WINAPI _tWinMain( HINSTANCE hInstance, 
       HINSTANCE, 
       LPTSTR, 
       int   iCmdShow ) 
{ 
    DialogBoxParam(hInstance, 
      MAKEINTRESOURCE(IDD_DLLINJECTOR), 
      NULL, 
      (DLGPROC) DlgProc, 
      NULL 
      ); 

    return 0; 
} 

LRESULT CALLBACK DlgProc( HWND hWnd, 
          UINT uMsg, 
          WPARAM wParam, 
          LPARAM lParam ) 
{ 
    switch (uMsg) 
    { 
     my_PROCESS_MESSAGE(hWnd, WM_INITDIALOG, Cls_OnInitDialog); 
     my_PROCESS_MESSAGE(hWnd, WM_COMMAND, Cls_OnCommand); 

    default: 
     break; 
    } 

    return FALSE; 
} 

BOOL Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) 
{ 
    SetDlgItemText(hwnd, 
      IDC_DEBUG, 
      _T("Zirek: Some text\r\n") 
      ); 

    return TRUE; 
} 

void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) 
{ 
    switch (id) 
    { 
    case IDCANCEL: 
     EndDialog(hwnd, id); 
     break; 

    default: 
     break; 
    } 

    return; 
} 

resource1.h

//{{NO_DEPENDENCIES}} 
// Microsoft Visual C++ generated include file. 
// Used by Resource.rc 
// 
#define IDCANCEL2      3 
#define IDCANCEL3      4 
#define IDD_DIALOG1      101 
#define IDD_DLLINJECTOR     101 
#define IDC_TREE1      1001 
#define IDC_EDIT1      1002 
#define IDC_DEBUG      1003 
#define IDC_LIST1      1004 
#define IDC_EDIT4      1005 
#define IDC_EDIT3      1007 

// Next default values for new objects 
// 
#ifdef APSTUDIO_INVOKED 
#ifndef APSTUDIO_READONLY_SYMBOLS 
#define _APS_NEXT_RESOURCE_VALUE  102 
#define _APS_NEXT_COMMAND_VALUE   40001 
#define _APS_NEXT_CONTROL_VALUE   1006 
#define _APS_NEXT_SYMED_VALUE   101 
#endif 
#endif 

RESOURCE.RC

// Microsoft Visual C++ generated resource script. 
// 
#include "resource1.h" 

#define APSTUDIO_READONLY_SYMBOLS 
///////////////////////////////////////////////////////////////////////////// 
// 
// Generated from the TEXTINCLUDE 2 resource. 
// 
#include "afxres.h" 

///////////////////////////////////////////////////////////////////////////// 
#undef APSTUDIO_READONLY_SYMBOLS 

///////////////////////////////////////////////////////////////////////////// 
// English (United States) resources 

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 

#ifdef APSTUDIO_INVOKED 
///////////////////////////////////////////////////////////////////////////// 
// 
// TEXTINCLUDE 
// 

1 TEXTINCLUDE 
BEGIN 
    "resource1.h\0" 
END 

2 TEXTINCLUDE 
BEGIN 
    "#include ""afxres.h""\r\n" 
    "\0" 
END 

3 TEXTINCLUDE 
BEGIN 
    "\r\n" 
    "\0" 
END 

#endif // APSTUDIO_INVOKED 


///////////////////////////////////////////////////////////////////////////// 
// 
// Dialog 
// 

IDD_DLLINJECTOR DIALOGEX 0, 0, 559, 255 
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU 
CAPTION "DLL Injector" 
FONT 8, "MS Shell Dlg", 400, 0, 0x1 
BEGIN 
    PUSHBUTTON  "&Close",IDCANCEL,494,54,50,14 
    CONTROL   "",IDC_TREE1,"SysTreeView32",WS_BORDER | WS_HSCROLL | WS_TABSTOP,7,7,125,221,WS_EX_CLIENTEDGE 
    EDITTEXT  IDC_EDIT1,7,234,125,14,ES_AUTOHSCROLL,WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE 
    EDITTEXT  IDC_DEBUG,138,149,414,99,ES_MULTILINE | ES_AUTOHSCROLL,WS_EX_CLIENTEDGE 
    CONTROL   "",IDC_LIST1,"SysListView32",LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,138,7,125,137,WS_EX_CLIENTEDGE 
    CTEXT   "Zirek\r\nAT4RE\r\nDLL Injector",IDC_STATIC,486,23,66,26,0,WS_EX_CLIENTEDGE 
    EDITTEXT  IDC_EDIT3,269,130,226,14,ES_AUTOHSCROLL,WS_EX_DLGMODALFRAME 
    PUSHBUTTON  "&Inject",IDCANCEL2,494,74,50,29 
    EDITTEXT  IDC_EDIT4,269,7,211,117,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE 
    DEFPUSHBUTTON "&Open",IDCANCEL3,502,130,50,14 
END 


///////////////////////////////////////////////////////////////////////////// 
// 
// DESIGNINFO 
// 

#ifdef APSTUDIO_INVOKED 
GUIDELINES DESIGNINFO 
BEGIN 
    IDD_DLLINJECTOR, DIALOG 
    BEGIN 
     LEFTMARGIN, 7 
     RIGHTMARGIN, 552 
     TOPMARGIN, 7 
     BOTTOMMARGIN, 248 
    END 
END 
#endif // APSTUDIO_INVOKED 

#endif // English (United States) resources 
///////////////////////////////////////////////////////////////////////////// 



#ifndef APSTUDIO_INVOKED 
///////////////////////////////////////////////////////////////////////////// 
// 
// Generated from the TEXTINCLUDE 3 resource. 
// 


///////////////////////////////////////////////////////////////////////////// 
#endif // not APSTUDIO_INVOKED 

代碼在Windows 8和Windows 7上正確運行,但在Windows XP中,當我單擊應用程序時,什麼都沒有發生。

最佳, Zirek

+0

我不確定你期望我們做什麼來幫助你。我們無法訪問任何內容來幫助調試問題,因爲我們沒有任何代碼,絕對沒有關於它的功能或依賴的信息,也沒有可用的信息來嘗試解決問題。您認爲我們可以提供零信息或訪問幫助,您完全**嗎? –

+0

對此Sory,源文件包括 – zirek

+0

它似乎沒有調用使用樹控件所需的'InitCommonControls'。 –

回答

0

我不知道是什麼問題,要麼,但一般使用dependencywalker是一個良好的開端。它會告訴你,如果你的應用程序依賴於winxp中沒有的功能,或者你忘記部署一些運行時DLL。

+0

我分享的源代碼,我只使用Windows API,我認爲問題是在我的資源文件,但我不知道如何閱讀它。 – zirek

1

您需要在任何想要運行應用程序的機器上安裝VC++ 2012 Redistributables。確保您下載並安裝了與您的Visual Studio版本(包括更新)相匹配的可再發行組件(例如,如果您有VS2012 Update 2,請分發該版本,而不是VS2013 Update 3的可再發行組件)。

相關問題