如果你没有修改过VC自带的.h头文件,一般情况是不会出问题的,而问题经常是由你自己的文件所引起

解决方案 »

  1.   

    to all
    已经有include "stdafx.h",而且也没修改过“.h”文件
    我一开始生成的workspace 是win32 控制台程序,
    想访问odbc api 就加入了:
    #ifndef __SQLTYPES
       #include "sqltypes.h"
    #endif#ifndef __SQL
       #include "sql.h"
    #endif#ifndef __SQLEXT
       #include "sqlext.h"
    #endif然后就出错了。我想知道我加入那方面的代码会引起这样的错误,
    还是由于预编译处理写的有问题。
      

  2.   

    #if defined(WIN32) || defined(OS2)
    typedef HWND                    SQLHWND;应该不会出现这样的问题吧?开头的两个宏mfc应该自动识别吧!关注!
      

  3.   

    你去掉#ifndef __SQLTYPES
    好使吗?
      

  4.   

    // 只包含#include "sql.h"
    // 在"sql.h"中已经包含了"sqltypes.h"#ifndef __SQL
       #include "sql.h"
    #endif
      

  5.   

    我的afxstd.h中只有:
    #if !defined(AFX_STDAFX_H__AA70C746_00AA_41A0_90C3_D7BC0EFBFA06__INCLUDED_)
    #define AFX_STDAFX_H__AA70C746_00AA_41A0_90C3_D7BC0EFBFA06__INCLUDED_#if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers#include <stdio.h>
      

  6.   

    to  zxs218(Frank Zhou
    照你说的也不行。
      

  7.   

    确认在#include "sql.h"
    前是否已经包含#include "windows.h"
      

  8.   

    sorry,
    加入:#ifndef __SQLEXT
    #include <sqlext.h>     // extensions
    #endif
      

  9.   

    to ericzhangali(卖女孩的小火柴) 
    预编译和条件我在这方面知识匮乏,要不就不麻烦大家了!
    你有什么经验可以告诉我么?
      

  10.   

    修改为:#include "windows.h"#ifndef __SQL
       #include "sql.h"
    #endif#ifndef __SQLEXT
       #include "sqlext.h"
    #endif因为
    在sqltypes.h中有:#if defined(WIN32) || defined(OS2)
    typedef HWND                    SQLHWND;
    ...不声明HWND就会出错。
      

  11.   

    to zxs218(Frank Zhou#include "windows.h"
    就不能使用"afx.h"了!
      

  12.   

    #include <afxwin.h>如何?
      

  13.   

    修改为:#include "afx.h"#ifndef __SQL
       #include "sql.h"
    #endif#ifndef __SQLEXT
       #include "sqlext.h"
    #endif也可以。
      

  14.   

    如果你是MFC程序的话这也可以:#include "stdafx.h"#ifndef __SQL
       #include "sql.h"
    #endif#ifndef __SQLEXT
       #include "sqlext.h"
    #endif
      

  15.   

    d:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
      

  16.   

    这样也不行:#include "afx.h"#ifndef __SQL
       #include "sql.h"
    #endif#ifndef __SQLEXT
       #include "sqlext.h"
    #endif
      

  17.   

    你第二次出现的已定义错误可以用以下指令乎略掉
    #pragma comment(linker,"/FORCE:MULTIPLE")
      

  18.   

    问题是这样了:在“afxstd.h”中加入
    #include "windows.h",就可编译通过,
    一旦#include "afx.h" or "afxwin.h"
    就会出现文首的错误。
      

  19.   

    opentuxedo(开缝的燕尾服) 
    我不会用,如何添家??
      

  20.   

    增加一个预定义的宏
    _WINDOWS
    Project -> Setting -> C/C++ -> Preprocessor definitions 中加入。试试看
      

  21.   

    to  zxs218(Frank Zhou)这次成了连接错误了!nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCD.lib(new.obj)
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCD.lib(dbgdel.obj)
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
    Debug/OdbcApi.exe : fatal error LNK1120: 2 unresolved externals
    Error executing link.exe.
    Creating browse info file...OdbcApi.exe - 5 error(s), 0 warning(s)
      

  22.   

    to  zxs218(Frank Zhou)这次成了连接错误了!nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCD.lib(new.obj)
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCD.lib(dbgdel.obj)
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
    Debug/OdbcApi.exe : fatal error LNK1120: 2 unresolved externals
    Error executing link.exe.
    Creating browse info file...OdbcApi.exe - 5 error(s), 0 warning(s)
      

  23.   

    标准的MFC程序会设置:
    WIN32,_DEBUG,_WINDOWS,_AFXDLL,_MBCS你增加_AFXDLL就可以了
      

  24.   

    error没有了,但有个warning
    LINK : warning LNK4098: defaultlib "msvcrtd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library.还有请教:兄弟你是在那本书上学到这些编译处理的知识的?
      

  25.   

    error没有了,但有个warning
    LINK : warning LNK4098: defaultlib "msvcrtd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library.还有请教:兄弟你是在那本书上学到这些编译处理的知识的?
      

  26.   

    error没有了,但有个warning
    LINK : warning LNK4098: defaultlib "msvcrtd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library.还有请教:兄弟你是在那本书上学到这些编译处理的知识的?
      

  27.   

    自学的?基本的帮助就是MSDN.
      

  28.   

    我也看msdn毕竟是e文的,挺费劲。
    上面哪个warning没什么影响么?
      

  29.   

    LINK : warning LNK4098: defaultlib "msvcrtd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library.要解决在Project -> Setting -> Link中
    Category 为 General
    选中Ingore all default libraries检查框。
      

  30.   

    sorry,标准做法:在link框中的Project Options键入:/NODEFAULTLIB:msvcrtd.lib
      

  31.   

    这下没了,thx
    希望还能向你请教。