| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 760 人关注过本帖
标题:向hellovfp大哥及各位论坛大牛求助!!
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:80 回复次数:5 
向hellovfp大哥及各位论坛大牛求助!!
windows编程手册看到“创建一个 Windows 外壳”那一章 有个实例程序 放到VC下编译通不过……
FileBox2.zip (5.65 KB)


懒的下的话我把三个文件贴下面:(代码有点长 也比较占地方 但各位看官完全可以一扫而过 关键是后面的错误 和源程序没直接的关系 是出在了一个依赖文件(可以这么叫吧)上头。而且出现的两个错误指向同一个地方)
程序代码:
///////////////////////////////////////
// Program Name: FileBox.cpp
// Programmer: skyline
// Description: FileBox Windows program
///////////////////////////////////////

#define STRICT
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
#include "windowsx.h"
#pragma warning (disable:4068)
#pragma hdrstop
// #include "excpt.h"
#include "direct.h"
#include "string.h"
#include "FileBox2.h"

static char szAppName[]="skyline";
static HWND MainWindow;
static HINSTANCE hInstance;

char * ButtonText[]={"&Drives","&Directories","&Files"};
char * BmpName[]={"DRIVES","DIRS","FILES"};
WORD DirShowVal[]={DDL_DRIVES|DDL_EXCLUSIVE,
        DDL_DIRECTORY|DDL_EXCLUSIVE,DDL_ARCHIVE};

HWND hControl[8];
HBITMAP Bmp[3];
HWND PathWin;
FARPROC lpfnNewEditProc;
char FilesWildCard[100];
HBRUSH BtnBrush;

//////////////////////////////////
// Program entry point.   
//////////////////////////////////
#pragma argsused                                        
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInstance,
    LPSTR lpszCmdParam,int nCmdShow)
{
    MSG Msg;

    if(! hPrevInstance)
    if(! Register(hInst))
        return FALSE; 

    SetMessageQueue(20);

    MainWindow=Create(hInst,nCmdShow);
    if(! MainWindow)
     return FALSE;

    while(GetMessage(&Msg,NULL,0,0))
    {
    if(!IsDialogMessage(MainWindow,&Msg))
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    }
    return Msg.wParam;
}

////////////////////////////////////
// Register the window
////////////////////////////////////
BOOL Register(HINSTANCE hInst)
{
    WNDCLASS WndClass;

    WndClass.style = CS_HREDRAW|CS_VREDRAW;
    WndClass.lpfnWndProc = WndProc;
    WndClass.cbClsExtra = 0;
    WndClass.cbWndExtra = 0;
    WndClass.hInstance = hInst;
    WndClass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
    WndClass.hCursor = LoadCursor(NULL,IDC_ARROW);
    WndClass.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
    WndClass.lpszMenuName = NULL;
    WndClass.lpszClassName = szAppName;

    return (RegisterClass(&WndClass)!=0);
}


////////////////////////////////////
// Create the Window and show it.
////////////////////////////////////
HWND Create(HINSTANCE hInst,int nCmdShow)
{                              
    hInstance=hInst;

    HWND hWnd = CreateWindowEx (0,szAppName,szAppName,
    WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|
    WS_MINIMIZEBOX|WS_THICKFRAME,CW_USEDEFAULT,
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
    NULL,NULL,hInst,NULL);
    if(hWnd == NULL)
    return hWnd;

    ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);

    return hWnd;
}

//////////////////////////////////
// The window proc is where message get processed
//////////////////////////////////

LRESULT CALLBACK WndProc(HWND hWnd,UINT Message,
        WPARAM wParam,LPARAM lParam) 
{
    switch(Message)
    {
      HANDLE_MSG(hWnd,WM_CREATE,skyline_OnCreate);
      HANDLE_MSG(hWnd,WM_DESTROY,skyline_OnDestroy);
      HANDLE_MSG(hWnd,WM_CLOSE,skyline_OnClose);
      HANDLE_MSG(hWnd,WM_COMMAND,skyline_OnCommand);
      HANDLE_MSG(hWnd,WM_GETMINMAXINFO,skyline_OnGetMinMaxInfo);
      HANDLE_MSG(hWnd,WM_PAINT,skyline_OnPaint);
      HANDLE_MSG(hWnd,WM_PARENTNOTIFY,skyline_OnParentNotify);
      HANDLE_MSG(hWnd,WM_RBUTTONDOWN,skyline_OnRButtonDown);
    #ifdef WIN32
      HANDLE_MSG(hWnd,WM_CTLCOLORBTN,skyline_OnCtlColor);
      HANDLE_MSG(hWnd,WM_CTLCOLORSTATIC,skyline_OnCtlColor);
    #else
      HANDLE_MSG(hWnd,WM_CTLCOLOR,skyline_OnCtlColor);
    #endif

      default:
      return skyline_DefProc(hWnd,Message,wParam,lParam);
    }
}

//////////////////////////////////
// Create the Callback procedures
//////////////////////////////////
void MakeCallBackProcs()
{
    #ifdef WIN32
    OldEditProc=(WNDPROC)SetWindowLong(hControl[ID_EDIT],
            GWL_WNDPROC,LONG(NewEditProc));
    #else
    lpfnNewEditProc=MakeProcInstance((FARPROC)NewEditProc,hInstance);
    OldEditProc=(WNDPROC)SetWindowLong(hControl[ID_EDIT],
            GWL_WNDPROC,LONG(lpfnNewEditProc));
    #endif
}

//////////////////////////////////
// Handle WM_CREATE
//////////////////////////////////
#pragma argsused
BOOL skyline_OnCreate(HWND hWnd,
    CREATESTRUCT FAR * lpszCreateStruct)
{
    BtnBrush=CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
    for(int i=0;i<3;i++)
    {
    Bmp[i]=LoadBitmap(hInstance,BmpName[i]);
    if(!Bmp[i])
    {
        MessageBox(hWnd,"No Bitmap !",
        "Fatal Error",MB_ICONSTOP|MB_OK);
        return FALSE;
    }
    }
    hControl[ID_FILELIST]=CreateWindow("listbox",NULL,
    WS_CHILD|WS_VISIBLE|LBS_STANDARD|WS_TABSTOP,
    15,30,220,180,hWnd,HMENU(ID_FILELIST),hInstance,NULL);

    hControl[ID_GROUP]=CreateWindow("button","Mode",
    WS_CHILD|WS_VISIBLE|BS_GROUPBOX,
    250,2,131,122,hWnd,HMENU(ID_FILELIST),hInstance,NULL);

    for(i=0;i<3;i++)
    hControl[i]=CreateWindow("button",ButtonText[i],
        WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,
        270,25+(i*30),95,30,hWnd,HMENU(i+100),hInstance,NULL);

    hControl[ID_EDIT]=CreateWindow("edit","*.exe",
    WS_CHILD|WS_VISIBLE|WS_BORDER|WS_TABSTOP|WS_GROUP,
    250,130,131,25,hWnd,HMENU(ID_EDIT),hInstance,NULL);
   
    hControl[ID_CLOSE]=CreateWindow("button","Close",
    WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|WS_TABSTOP|WS_GROUP,
    250,161,131,45,hWnd,HMENU(ID_CLOSE),hInstance,NULL);

    PathWin=CreateWindow("static",NULL,
    WS_CHILD|WS_VISIBLE|WS_BORDER,
    14,10,222,20,hWnd,HMENU(ID_PATHS),hInstance,NULL);

    DlgDirList(hWnd,"*.*",ID_FILELIST,
    ID_PATHS,DirShowVal[DirShowType]);
   
    MakeCallBackProcs();

    Button_SetCheck(hControl[0],TRUE);
    SetFocus(hControl[ID_FILELIST]);

    strcpy(FilesWildCard,"*.exe");

    SetListBox(hWnd);

    return TRUE;
}

//////////////////////////////////
// Handle WM_DESTROY
//////////////////////////////////
#pragma argsused
void skyline_OnDestroy(HWND hWnd)
{
    for(int i=0;i<3;i++)
    DeleteBitmap(Bmp[i]);

    DeleteBrush(BtnBrush);

    SetWindowLong(hControl[ID_EDIT],GWL_WNDPROC,LONG(OldEditProc));

    #ifndef WIN32
    FreeProcInstance(lpfnNewEditProc);
    #endif

    PostQuitMessage(0);
}

//////////////////////////////////
// Handle WM_CLOSE
//////////////////////////////////
#pragma argsused
void skyline_OnClose(HWND hWnd)
{
    if(MessageBox(hWnd,"Do you want to exit ?","FileBox",
    MB_ICONQUESTION|MB_OKCANCEL)==IDOK)
    {
    DestroyWindow(hWnd);
    }
}

//////////////////////////////////
// SetListBox
//////////////////////////////////
#pragma argsused
void SetListBox(HWND hWnd)
{
    RECT r;
    char WildCard[150];

    if(DirShowType==FILEMODE)
    strcpy(WildCard,FilesWildCard);
    else
    strcpy(WildCard,"*.*");

    ListBox_ResetContent(hControl[ID_FILELIST]);
    ListBox_Dir(hControl[ID_FILELIST],
    DirShowVal[DirShowType],WildCard);

    r.left=14;
    r.top=220;
    r.right=14+BMPX;
    r.bottom=220+BMPY;

    InvalidateRect(hWnd,&r,FALSE);
}

//////////////////////////////////
// Handle MouseClick on listbox for DIR or DRIVE change
//////////////////////////////////
#pragma argsused
void HandleMouseClick(HWND hWnd,int id,
    HWND hWndCtl,UINT CodeNotify)
{
    char buf[MAXSTR];

    DlgDirSelectEx(hWnd,buf,MAXSTR,ID_FILELIST);
    DlgDirList(hWnd,buf,ID_FILELIST,
    ID_PATHS,DirShowVal[DirShowType]);
}

//////////////////////////////////
// Handle WM_COMMAND
//////////////////////////////////
#pragma argsused
void skyline_OnCommand(HWND hWnd,int id,
    HWND hWndCtl,UINT CodeNotify)
{
    char s[MAXSTR],lpszBuf[MAXSTR];

    switch(id)
    {
    case ID_DRIVES+100:
        DirShowType=DRIVEMODE;
        SetListBox(hWnd);
        break;

    case ID_DIRS+100:
        DirShowType=DIRMODE;
        SetListBox(hWnd);
        break;

    case ID_FILES+100:
        DirShowType=FILEMODE;
        SetListBox(hWnd);
        break;

    case ID_FILELIST:
        if(CodeNotify==LBN_DBLCLK)
        {
        if(DirShowType!=FILEMODE)
            HandleMouseClick(hWnd,id,hWndCtl,CodeNotify);
        else
        {
            int index=ListBox_GetCurSel(hControl[ID_FILELIST]);
            _getdcwd(0,s,125);
            ListBox_GetText(hControl[ID_FILELIST],index,lpszBuf);
            strcat(s,"\\");
            strcat(s,lpszBuf);
            WinExec(s,SW_SHOWNORMAL);
        }
        }
        break;

    case ID_CLOSE:
        SendMessage(hWnd,WM_CLOSE,0,0);
        break;
    }
}

//////////////////////////////////
// Handle WM_CTLCOLOR
//////////////////////////////////
#pragma argsused
HBRUSH skyline_OnCtlColor(HWND hWnd,HDC hdc,
    HWND hWndChild,int type)
{
    switch(type)
    {
    case CTLCOLOR_STATIC:
    case CTLCOLOR_BTN:
        SetBkMode(hdc,TRANSPARENT);
        return BtnBrush;
    }

    return NULL;
}

//////////////////////////////////
// Handle WM_GETMAINMAXINFO
//////////////////////////////////
#pragma argsused
void skyline_OnGetMinMaxInfo(HWND hWnd,
        MINMAXINFO FAR * lpMinMaxInfo)
{
    lpMinMaxInfo->ptMaxSize.x=XSIZE;
    lpMinMaxInfo->ptMaxSize.y=YSIZE;
    lpMinMaxInfo->ptMaxPosition.x=100;
    lpMinMaxInfo->ptMaxPosition.y=100;
    lpMinMaxInfo->ptMinTrackSize.x=XSIZE;
    lpMinMaxInfo->ptMinTrackSize.y=YSIZE;
    lpMinMaxInfo->ptMaxTrackSize.x=XSIZE;
    lpMinMaxInfo->ptMaxTrackSize.y=YSIZE;
}

void HandleRightButton(HWND hWnd)
{
    switch(DirShowType)
    {
    case DRIVEMODE:
        Button_SetCheck(hControl[1],TRUE);
        Button_SetCheck(hControl[0],FALSE);
        Button_SetCheck(hControl[2],FALSE);
        DirShowType=DIRMODE;
        break;

    case DIRMODE:
        Button_SetCheck(hControl[2],TRUE);
        Button_SetCheck(hControl[0],FALSE);
        Button_SetCheck(hControl[1],FALSE);
        DirShowType=FILEMODE;
        break;

    case FILEMODE:
        Button_SetCheck(hControl[0],TRUE);
        Button_SetCheck(hControl[1],FALSE);
        Button_SetCheck(hControl[2],FALSE);
        DirShowType=DRIVEMODE;
        break;
    }
    SetListBox(hWnd);
}

//////////////////////////////////
// Handle WM_PAINT
//////////////////////////////////
#pragma argsused
void skyline_OnPaint(HWND hWnd)
{
    PAINTSTRUCT PaintStruct;
    HBITMAP OldBmp;

    HDC PaintDC=BeginPaint(hWnd,&PaintStruct);
    HDC BltDC=CreateCompatibleDC(PaintDC);

    OldBmp=SelectBitmap(BltDC,Bmp[DirShowType]);
    BitBlt(PaintDC,14,220,BMPX,BMPY,BltDC,0,0,SRCCOPY);

    SelectBitmap(BltDC,OldBmp);
    DeleteDC(BltDC);
    EndPaint(hWnd,&PaintStruct);
}

//////////////////////////////////
// Handle WM_PARENTNOTIFY
//////////////////////////////////
#pragma argsused
void skyline_OnParentNotify(HWND hWnd,UINT msg,
            HWND hWndChild,int idChild)
{
    if(msg==WM_RBUTTONDOWN)
    HandleRightButton(hWnd);
}

//////////////////////////////////
// Handle WM_RBUTTONDOWN
//////////////////////////////////
#pragma argsused
void skyline_OnRButtonDown(HWND hWnd,BOOL fDoubleClick,
               int x,int y,UINT keyFalgs)
{
    HandleRightButton(hWnd);
}

// -------------------------------
// The SubClassed WNDPROCS
// -------------------------------

void SetNewWildCard(HWND hWnd)
{
    char buf[150];

    GetWindowText(hWnd,buf,sizeof(buf));
    strcpy(FilesWildCard,buf);
    if(DirShowType==FILEMODE)
    SetListBox(MainWindow);
}

///////////////////////////////////
// SubClassing for RadioButtons
///////////////////////////////////
LRESULT CALLBACK NewEditProc(HWND hWnd,UINT message,
            WPARAM wParam,LPARAM lParam)
{
    switch(message)
    {
    case WM_GETDLGCODE:
        return DLGC_WANTALLKEYS;
    case WM_CHAR:
        if(wParam==VK_TAB)
        return 0;
        break;
    case WM_KEYDOWN:
        switch(wParam)
        {
        case VK_RETURN:
            SetNewWildCard(hWnd);
            SetFocus(hControl[ID_CLOSE]);
            break;
        case VK_TAB:
            int state=GetKeyState(VK_SHIFT);
            if(state&0x8000)
            SetFocus(hControl[DirShowType]);
            else
            SetFocus(hControl[ID_CLOSE]);
            break;
        }
        break;
    case WM_KILLFOCUS:
        SetNewWildCard(hWnd);
        break;
    case WM_SETFOCUS:
        Edit_SetSel(hWnd,0,-1);
        break;
    }
    return CallWindowProc(OldEditProc,hWnd,message,wParam,lParam);
}


*****************8
程序代码:
///////////////////////////////////////
// Program Name: FileBox2.h
// Programmer: skyline
///////////////////////////////////////

// Constants
// #include "excpt.h"
#define ID_DRIVES   0
#define ID_DIRS     1
#define ID_FILES    2
#define ID_CLOSE    3
#define ID_FILELIST 4
#define ID_GROUP    5
#define ID_EDIT     6
#define ID_PATHS    7

#define BMPX        365
#define BMPY        100

#define XSIZE       403
#define YSIZE       360

#define MAXSTR      150

// Types
enum TCurMode{DRIVEMODE,DIRMODE,FILEMODE};

// Declarations
#define skyline_DefProc DefWindowProc
BOOL skyline_OnCreate(HWND hWnd,
    CREATESTRUCT FAR * lpszCreateStruct);
void skyline_OnDestroy(HWND hWnd);
void skyline_OnClose(HWND hWnd);
void skyline_OnCommand(HWND hWnd,int id,
        HWND hWndCtl,UINT CodeNotify);
HBRUSH skyline_OnCtlColor(HWND hWnd,HDC hdc,
        HWND hWndChild,int type);
void skyline_OnGetMinMaxInfo(HWND hWnd,
        MINMAXINFO FAR * lpMinMaxInfo);
void skyline_OnPaint(HWND hWnd);
void skyline_OnParentNotify(HWND hWnd,UINT msg,
        HWND hWndChild,int idChild);
void skyline_OnRButtonDown(HWND hWnd,BOOL fDoubleClick,
        int x,int y,UINT keyFalgs);

// Funcs
#ifdef WIN32
LRESULT CALLBACK WndProc(HWND hWnd,UINT Message,
        WPARAM wParam,LPARAM lParam);
LRESULT CALLBACK NewEditProc(HWND hWnd,UINT message,
        WPARAM wParam,LPARAM lParam);
#else
LRESULT CALLBACK_export WndProc(HWND hWnd,UINT Message,
        WPARAM wParam,LPARAM lParam);
LRESULT CALLBACK_export NewEditProc(HWND hWnd,UINT message,
        WPARAM wParam,LPARAm lParam);
#endif
void HandleRightButton(HWND hWnd);
BOOL Register(HINSTANCE hInst);
HWND Create(HINSTANCE hInst,int nCmdShow);
void SetListBox(HWND hWnd);

TCurMode DirShowType;
WNDPROC OldEditProc;


******************
程序代码:
// FileBox.rc
DRIVES BITMAP "DRIVES.BMP"
FILES  BITMAP "FILES.BMP"
DIRS   BITMAP "DIRS.BMP"


出现错误的是这个文件
程序代码:
/***
*excpt.h - defines exception values, types and routines
*
*       Copyright (c) 1990-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       This file contains the definitions and prototypes for the compiler-
*       dependent intrinsics, support functions and keywords which implement
*       the structured exception handling extensions.
*
*       [Public]
*
****/

#if     _MSC_VER > 1000
#pragma once
#endif

#ifndef _INC_EXCPT
#define _INC_EXCPT

#if     !defined(_WIN32) && !defined(_MAC)
#error ERROR: Only Mac or Win32 targets supported!
#endif


#ifdef  _MSC_VER
/*

 * Currently, all MS C compilers for Win32 platforms default to 8 byte

 * alignment.

 */
#pragma pack(push,8)
#endif  /* _MSC_VER */

/*
[color=#0000FF]#ifdef  __cplusplus
extern "C" {
#endif
[/color]*/



/* Define _CRTIMP */

#ifndef _CRTIMP
#ifdef  _DLL
#define _CRTIMP __declspec(dllimport)
#else   /* ndef _DLL */
#define _CRTIMP
#endif  /* _DLL */
#endif  /* _CRTIMP */


/* Define __cdecl for non-Microsoft compilers */

#if     ( !defined(_MSC_VER) && !defined(__cdecl) )
#define __cdecl
#endif

/* Define _CRTAPI1 (for compatibility with the NT SDK) */

#ifndef _CRTAPI1
#if    _MSC_VER >= 800 && _M_IX86 >= 300
#define _CRTAPI1 __cdecl
#else
#define _CRTAPI1
#endif
#endif


 

typedef enum _EXCEPTION_DISPOSITION {
    ExceptionContinueExecution,
    ExceptionContinueSearch,
    ExceptionNestedException,
    ExceptionCollidedUnwind
} EXCEPTION_DISPOSITION; 


/*

 * Prototype for SEH support function.

 */

#ifdef  _M_IX86

/*

 * Declarations to keep MS C 8 (386/486) compiler happy

 */
struct _EXCEPTION_RECORD;
struct _CONTEXT;

EXCEPTION_DISPOSITION __cdecl _except_handler (
    struct _EXCEPTION_RECORD *ExceptionRecord,
    void * EstablisherFrame,
    struct _CONTEXT *ContextRecord,
    void * DispatcherContext
    );

#elif   defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC)

/*

 * Declarations to keep MIPS, ALPHA, and PPC compiler happy

 */
typedef struct _EXCEPTION_POINTERS *Exception_info_ptr;
struct _EXCEPTION_RECORD;
struct _CONTEXT;
struct _DISPATCHER_CONTEXT;


_CRTIMP EXCEPTION_DISPOSITION __C_specific_handler (
    struct _EXCEPTION_RECORD *ExceptionRecord,
    void *EstablisherFrame,
    struct _CONTEXT *ContextRecord,
    struct _DISPATCHER_CONTEXT *DispatcherContext
    );

#endif


/*

 * Keywords and intrinsics for SEH

 */

#ifdef  _MSC_VER

#define GetExceptionCode            _exception_code
#define exception_code              _exception_code
#define GetExceptionInformation     (struct _EXCEPTION_POINTERS *)_exception_info
#define exception_info              (struct _EXCEPTION_POINTERS *)_exception_info
#define AbnormalTermination         _abnormal_termination
#define abnormal_termination        _abnormal_termination

unsigned long __cdecl _exception_code(void);
void *        __cdecl _exception_info(void);
int           __cdecl _abnormal_termination(void);

#endif


/*

 * Legal values for expression in except().

 */

#define EXCEPTION_EXECUTE_HANDLER       1
#define EXCEPTION_CONTINUE_SEARCH       0
#define EXCEPTION_CONTINUE_EXECUTION    -1



//#ifdef  __cplusplus
//}
//#endif

#ifdef  _MSC_VER
#pragma pack(pop)
#endif  /* _MSC_VER */

#endif  /* _INC_EXCPT */

//DRIVES BITMAP "DRIVES.BMP"
//FILES  BITMAP "FILES.BMP"
//DIRS   BITMAP "DIRS.BMP"


————————
c:\program files\microsoft visual studio\vc98\include\excpt.h(92) : error C2143: syntax error : missing ';' before '__cdecl'
c:\program files\microsoft visual studio\vc98\include\excpt.h(92) : error C2501: 'EXCEPTION_DISPOSITION' : missing storage-class or type specifiers
Error executing cl.exe.
错误对应的代码是:
程序代码:
struct _EXCEPTION_RECORD;
struct _CONTEXT;

EXCEPTION_DISPOSITION __cdecl _except_handler (
    struct _EXCEPTION_RECORD *ExceptionRecord,
    void * EstablisherFrame,
    struct _CONTEXT *ContextRecord,
    void * DispatcherContext
    );
excpt.h里的一段?
网上看了下 没有相关的解决方案 有个说是VC装的不对 要重装? 这个……按说自学手册是很早的书 对库要求不是很高吧
我在两个文件里加上 #include "excpt.h"也解决不了问题

把程序移到VS2010下 遇到的问题是 char 类型无法适应VS下面的函数 有的函数的参数必须是LPCSTR  / TCHAR 型的
我还得一个一个的把char 换成 TCHAR  然后在“****”字符串前面加L 有个函数 _getdcwd(0,(char *)s,125);的参数必须是char * 型的 擦! 又把它强制转换了。
这样折腾下来 编译到是通过了 但是运行时 有个错误
图片附件: 游客没有浏览图片的权限,请 登录注册

就出在下面这个函数里
 DlgDirList(hWnd,L"*.*",ID_FILELIST,
    ID_PATHS,DirShowVal[DirShowType]);
FileBox.exe 中的 0x7c80cf4a 处有未经处理的异常: 0xC0000005: 写入位置 0x004177ac 时发生访问冲突
实在不知怎么搞了 求指导.

[ 本帖最后由 有容就大 于 2012-5-3 09:46 编辑 ]
搜索更多相关主题的帖子: windows 大哥 Windows 源程序 
2012-05-02 20:59
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
昨天可能电脑要罢工 搞个莫名其妙的东东出来 今天早上起来那个excpt.h 文件就不干扰我了 ~~

然后去调试了下 在VC下还是和VS样的 出在   DlgDirList(hWnd,"*.*",ID_FILELIST,
    ID_PATHS,DirShowVal[DirShowType]);上面 然后我把"*.*"换成一个字符数组名 char s[100];的 s 出现一个警告说是:不能应用代码更改的一个或多个函数的调用堆栈 然后我注释掉了他 在运行就得到了结果 然后我有把注释去掉 哈 一样能得到结果 真奇怪。

哎 基础不牢 地动山摇

梅尚程荀
马谭杨奚







                                                       
2012-05-03 10:12
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:66 
该错误就是 'EXCEPTION_DISPOSITION'  定义未识别

谁告诉你需要将char换成TCHAR
VC默认创建的程序是U码的(如果你设定没指定的话)
你只需将其项目属性改为单字节
2012-05-03 10:17
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
经常出现提示说某某前面缺少 ;  其实就是他的前面的找不到定义
2012-05-03 10:18
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 3楼 hahayezhe
这样啊  我去改了下 原来的问题就没了
图片附件: 游客没有浏览图片的权限,请 登录注册

————
图片附件: 游客没有浏览图片的权限,请 登录注册


我原来使用的是Unicode字符集 改成了 多字节字符集 了
没看到有单字符?

[ 本帖最后由 有容就大 于 2012-5-3 11:07 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-05-03 11:03
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:14 
蹭个分

最基础的往往是你最容易忽略的!
2012-05-03 16:57
快速回复:向hellovfp大哥及各位论坛大牛求助!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045469 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved