[编译][错误][苦恼]编译错误!(苦恼)

09月 13th, 2008 by admin
Posted in VC/MFC | No Comments »

下载的vc++技术内幕源代码,编译时出现错误!!
c:vcpp32ex06aex06aview.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/ex06a.pch': No such file or directory
源代码下载网址是:
http://softiidx1.softii.com/softii/VC++jsnmym.rar?0000000877248875099tflag=1215242787opin=80c18bf25563ac934aaf8c90a858725e&ip=.rar
是EX06A那个例子,不知道是不是我的编译器有问题,我自己编的也不行!!!(不知道问什么附件上传不上去)希望高手给我解决下,不胜感激!!!如果编译器不行的话,希望有人给我个!!!

你用VC编译应该可以,你在编译菜单下选择“rebuild all”,应该就行了,试试吧

部分源文件的长文件名丢失了,你可以自己手动改一下:
EX06AD~1.CPP -> EX06ADialog.CPP
EX06AD~1.H  -> EX06ADialog.H
EX06AV~1.CPP -> EX06AView.CPP
EX06AV~1.H  -> EX06AView.H

一般不管是从网站下载的源代码,还是从别人机器上拷来的源代码,都要经过重新编译,也就是 Build菜单下的 "Rebuild ALL"选项,重新编译所有后就没问题了!

Rebuild ALL

删除Debug目录,重新编译

Rebuild ALL

rebuild ALL即可

组建-》清除,然后在编译一下
有时候,明明好着呢,就是过不去,清除一下就好了

删除Debug目录,重新编译

Rebuild ALL就行啦

Tags: , , ,

[前辈][错误]请前辈帮我看看这几个错误。。。。

09月 12th, 2008 by admin
Posted in VC/MFC | No Comments »

error C2146: syntax error : missing ';' before identifier 'm_cControlPos'
error C2501: 'CControlPos' : missing storage-class or type specifiers
error C2501: 'm_cControlPos' : missing storage-class or type specifiers

加入一个头文件 #include "ControlPos.h"
在自己的类下加入:CControlPos m_cControlPos;后出现上面三处错误,
本人新手,不知如何解决,请高手帮忙

同意一楼,要将整个类,包括其定义和实现都添加到工程里面!

1、重新编译一次(指的是清空后再重头编译)。

2、上面那步不行的话,看看这个头文件是否要与哪个库(.lib)文件合起来使用,所以将该库文件引入工程中。

3、检查头文件加入的位置是否正确,先把头文件直接放在需要使用的cpp文件头部。

这时刚看到1楼的,对!先试试1楼的做法!

ControlPos.cpp 我已添加到工程里了,难道我放的位置不对?我放在这个工程的文件夹下

工程-〉添加到工程-〉文件,之后选中你要添加进工程的文件,你这里就是那个类的头文件及实现文件。

要疯了,依然没有解决

missing ';' before identifier 'm_cControlPos'

将.h文件对应的Cpp文件加入工程。
如果是一个Dll的话 要将.h对应的.lib文件加入工程

ControlPos.cpp这个文件我已经放在工程文件夹下了,还需要设置什么吗?

把你的ControlPos.h贴上来看看
这个错误不是找不到cpp的问题,是找不到这个类定义的问题,所以看看你的ControlPos.h里面是怎么定义的

//——————————————————————————
// ControlPos.h
//
// CControlPos
// Position controls on a form's resize
//
// Copyright (c) 2000 Paul Wendt
//
// VERSION# DATE NAME DESCRIPTION OF CHANGE
// ——– ———- —- ———————
// 1.01  07/11/2000 PRW Original creation.
//
#ifndef CONTROLPOS_H_
#define CONTROLPOS_H_

//———————————————-
// these #define's specify HOW the control
// will move. they can be combined with the
// bitwise or operator
//
#define CP_MOVE_HORIZONTAL 1
#define CP_MOVE_VERTICAL 2
#define CP_RESIZE_HORIZONTAL 4
#define CP_RESIZE_VERTICAL 8

class CControlPos
{
public:
CControlPos(CWnd* pParent = NULL);
virtual ~CControlPos();

public:
void SetParent(CWnd* pParent);

BOOL AddControl(CWnd* pControl, const DWORD& dwStyle = CP_MOVE_HORIZONTAL);
BOOL AddControl(const UINT& unId, const DWORD& dwStyle = CP_MOVE_HORIZONTAL);
BOOL RemoveControl(CWnd* pControl);
BOOL RemoveControl(const UINT& unId);
void ResetControls(void);
virtual void MoveControls(void);

//—————————————————
// most of the time, you don't want to move controls
// if the user reduces window size [controls can
// overlap and cause "issues"]
// negative moves won't move controls when the parent
// window is getting smaller than its original size
//
void SetNegativeMoves(const BOOL& fNegativeMoves = TRUE);
BOOL GetNegativeMoves(void) const;

protected:
virtual void UpdateParentSize(void);

private:
CWnd*  m_pParent;
int    m_nOldParentWidth;
int    m_nOldParentHeight;
int    m_nOriginalParentWidth;
int    m_nOriginalParentHeight;
BOOL  m_fNegativeMoves;

CObArray m_awndControls;
};

//—————————————————-
// internal structure used to hold all information
// about a CWnd* control
//
typedef struct tagCONTROLDATA
{
HWND  hControl; // HWND's never change; some MFC functions return temporary CWnd *'s
DWORD dwStyle; // check the #define's above
} CONTROLDATA, *LPCONTROLDATA;

#endif

貌似木有问题哦
唯一能想到的可能了:搜索一下你整个工程中的文件,看是否有其他的文件里面也有如下这行:
#define CONTROLPOS_H_

如果在其他头文件里面也有这个定义,那么在你的类所在头文件里面,可能无法引入这个class

定位一下,这个错误出在哪一行.

出错这一行就是 CControlPos m_cControlPos;

你的这个类CControlPos,还是没有给识别出来.你include了头文件了吗?,
注意大小写,等等

你CPP只放到了目录下,有没有在工程里加入呢?
Add -> Existing Item -> 那个什么CPP文件。
一个小建议。 不一定对。 呵呵

CControlPos m_cControlPos;后出现上面三处错误,

这行语句的前后是什么

同意17楼的看法

让窗体里的控件随窗体大小变化而变化,不是用这个吗?难道我用错了?有什么好方法吗?

你是不是只在文件中用#include包含了那个头文件,而没有把那个头添加到工程中啊?

ControlPos.h 和 ControPos.cpp全放在工程下了

引用 22 楼 ydsxi1314 的回复:
ControlPos.h 和 ControPos.cpp全放在工程下了

帮楼主再确认一下
不是只把文件放到工程下就可以了的
还要导入进去的

崩溃中。。。。。。。。。。。。

也有可能是头文件包含顺序问题,确认你在声明CControlPos m_cControlPos;之前已经
#include "ControlPos.h"
最简单的是在你的类的头文件中类声明之前包含。
如还有问题,将代码打包发给我看看(打包前清理、删除DEBUG、Release目录)

不行就重头搞一遍。。屡屡

你是在哪里实例化CControlPos m_cControlPos这个对象的?
不会是在CControlPos 类中吧?
如果是的话,类本身没有定义完,怎么实例化对象呢?
要在其他文件中实例化
不知道对你有没有帮助

我是在自己的类下声明的CControlPos m_cControlPos;

请25楼 Mackz前辈留下邮件,我会把程序发给你,请你帮我看看,不盛感激

算了,仍然非常感谢各位的帮助

Tags: , ,

[错误]这个错误怎样解决

09月 8th, 2008 by admin
Posted in VC/MFC | No Comments »

代码如下:
#ifndef LOCALMSG_H
#define LOCALMSG_H
#include <afx.h>
// SAYR俊辑 焊郴林绰 皋技瘤甸狼 IRCR COMMAND
#define MSG_SAYRCMD_NOTIFY "NOTIFY"
#define MSG_SAYRCMD_USER "USER"
#define MSG_SAYRCMD_MYIP "MYIP"
#define MSG_SAYRCMD_MYPORT "MYPORT"
#define MSG_SAYRCMD_PEER_SWITCH    "PEER_SWITCH"
#define MSG_SAYRCMD_PING          "PING"
#define MSG_SAYRCMD_KILL          "KILL"
#define MSG_SAYRCMD_ERROR          "ERROR"
#define MSG_SAYRCMD_JSEVAL        "JSEVAL" // 绝绰 酒捞叼老 版快俊 焊郴霖促.
#define MSG_SAYRCMD_IRCR_HELLO "IRCR_HELLO"
#define MSG_SAYRCMD_IRCR_PLUG "IRCR_PLUG"
#define MSG_SAYRCMD_IRCR_CURRENTKEY "IRCR_CURRENTKEY"
#define MSG_SAYRCMD_SVRTIME                "SVRTIME"
#define MSG_SAYRCMD_APPSVR_RESULT          "APPSVR_RESULT"
#define MSG_SAYRCMD_APPSVR_CALL_SERIAL      "APPSVR_CALL_SERIAL"

// SAYR肺 焊郴林绰 皋技瘤甸狼 IRCR COMMAND
#define MSG_SAYRCMD_QUIT "QUIT"

// LOGINE捞 CLIENT甸俊霸 焊郴林绰 皋技瘤甸狼 IRCR COMMAND
#define MSG_LOGINECMD_RANDOMSEED "LOGINECMD_RANDOMSEED"
#define MSG_LOGINECMD_AUTHENTICATION_COMPLETE "LOGINECMD_AUTHENTICATION_COMPLETE"
#define MSG_LOGINECMD_AUTHENTICATION_FAIL "LOGINECMD_AUTHENTICATION_FAIL"
#define MSG_LOGINECMD_PONG "LOGINECMD_PONG"
#define MSG_LOGINECMD_LOGIN_FAIL "LOGINECMD_LOGIN_FAIL"
#define MSG_LOGINECMD_LOGIN_PM   "LOGINECMD_LOGIN_PM"
#define MSG_LOGINECMD_LOGIN_UPGRADE   "LOGINECMD_LOGIN_UPGRADE"
#define MSG_LOGINECMD_CONNECTIONINFO "LOGINECMD_CONNECTIONINFO"
#define MSG_LOGINECMD_LOGOUT "LOGINECMD_LOGOUT"
#define MSG_LOGINECMD_LOGIN_PROGRESS            "LOGINECMD_LOGIN_PROGRESS"
#define MSG_LOGINECMD_LOGINEPORT                "LOGINECMD_LOGINEPORT"

// CLIENT啊 Logine俊霸 焊郴林绰 皋技瘤甸狼 IRCR COMMAND
#define MSG_LOGINECMD_AUTHENTICATION "LOGINECMD_AUTHENTICATION"
#define MSG_LOGINECMD_AUTHENTICATION_DIRECT   "MSG_LOGINECMD_AUTHENTICATION_DIRECT"

#define MSG_LOGINECMD_PING "LOGINECMD_PING"
#define MSG_LOGINECMD_PINGKILL "LOGINECMD_PINGKILL"
#define MSG_LOGINECMD_LOGIN "LOGINECMD_LOGIN"
#define MSG_LOGINECMD_TO_SAYR "LOGINECMD_TO_SAYR"
#define MSG_LOGINECMD_GETLOGINEPORT            "LOGINECMD_GETLOGINEPORT"

static long MakeMsg(CString strCommand, CString strParams, CString& strMsg)
{
  strMsg.Format("%s %s%s", strCommand, strParams, "
");
return strMsg.GetLength();
}

#endif //LOCALMSG_H

报错如下:
LocalListener.cpp
f:imaliceincludeasedef.h(48):[_WIN32_WINNT] - default 0×0500
f:imaliceincludeasedef.h(76):[UNICODE] - NOT defined
f:imaliceincludelocalmsg.h(51) : error C2065: 'CString' : undeclared identifier
f:imaliceincludelocalmsg.h(51) : error C2146: syntax error : missing ')' before identifier 'strCommand'
f:imaliceincludelocalmsg.h(51) : error C2059: syntax error : ')'
f:imaliceincludelocalmsg.h(52) : error C2143: syntax error : missing ';' before '{'
f:imaliceincludelocalmsg.h(52) : error C2447: missing function header (old-style formal list?)
f:imaliceapp_logine(服务器)locallistener.cpp(158):NEXT: Sync I/O狼 Nonblocking socket阑 荤侩窍档废 listener甫 upgrade窍磊..
Error executing cl.exe.

App_LoGine.exe - 5 error(s), 0 warning(s)

应该是却头文件,我查了MSDN然后加入 了AFX。H但是还是一样的报错,是不是要什么LIB文件?

'CString' : undeclared identifier
加入申明cstring的头文件

是别人的项目,我要编译哈,不能改啊!是什么问题啊?

语言还不一样啊,代码不全吧?

肯定缺东西!就连宏定义都提示未定义。
如果可能,请教一下代码编写的人吧。

应该是编程环境问题

看来出现乱码了,看后面的注释的中文就知道,大概是编译环境的问题吧

代码不兼容.

Tags: ,

[调用][组建][错误]C# 调用C++ Com组建时出现错误

09月 6th, 2008 by admin
Posted in VC/MFC | No Comments »

自己在VC++   6.0中写了一个Com组建,打算在VS2005(C#)中使用,但是在使用该Com组建时候确出现了好多莫名其妙的问题,请大家帮我看下,先谢谢了~~
问题一、在VC++所编译生成的DeBug文件中直接调用所生成的Com组建没问题,但是离开了DeBug文件夹确出现了“未能对……的引用,请确保此文件可访问并且是一个有效的程序集或Com组建”。

问题二,以前在DeBug文件中所调用好好Com组建,现在可以使用C#调用。但是没法正常使用,出现“未处理FileNetFoundException”错误,详细信息为:检索Com类工厂中CLSID为{BA0065D0-31C3-43BD-A6DB-BA9E558AC9F5}   的组建时失败,原因是出现下列错误:8007007e.

Tags: , , ,

[错误][调试]这个错误怎么调试

09月 3rd, 2008 by admin
Posted in VC/MFC | No Comments »

VC6.0下,程序运行报错,错误如下:

File:   dbgeheap.c
Line:   1017

Expression:   _BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)

我通过断点、单步运行,发现程序执行完最后一条语句后,都没有错误,那么这个错误应该发生在程序退出的时候。

找了好久,都不知道错误在哪里,请教各位高手,这个错误大概发生在什么地方?如何调试?

谢谢!

class   A
{
    ……
    ~A();         //释放空间
    ……
}

在另一个类的函数中,用A定义的对象作为参数
B(A   a);

程序运行没有问题,但是程序退出的时候,出现了问题,报了上述错误。
通过单步运行,发现原因在于析构函数被执行了2次,所以才导致报错。

这是为什么?

块的类型有问题,
但是不知道你的代码是什么,

可能是资源载退出的时候没有释放

你说的这种情况应该比较常见。
但你现在给出的信息感觉没有多大用途。

Tags: , ,

[文件][错误]一个文件流错误

09月 2nd, 2008 by admin
Posted in VC/MFC | No Comments »

D:VC6.0ProjectEXEOpenFile.cpp(54) : error C2228: left of '.open' must have class/struct/union type
D:VC6.0ProjectEXEOpenFile.cpp(55) : error C2228: left of '.read' must have class/struct/union type

fstream file();
file.open("c.las",ios::in &brvbarios::out &brvbarios::binary &brvbarios::nocreate);
file.read(list,9);

这是出错的地方,头文件包括了#include"fstream.h"

谁能指导下是怎么回事?

//fstream file() 出错了;
fstream file;
file.open("c.las",ios::in ⦩os::out ⦩os::binary ⦩os::nocreate);
file.read(list,9);

//fstream file() 出错了;
fstream file;
file.open("c.las",ios::in ⦩os::out ⦩os::binary ⦩os::nocreate);
file.read(list,9);

fstream file();
把file后面的括号去掉就可以了!
你试试!

晕啊,丢人了,强烈要求管理员删掉此贴

//fstream file();有你这麽生成对象的嘛?
fstream file;
file.open("c.las",ios::in ⦩os::out ⦩os::binary ⦩os::nocreate);
file.read(list,9);

本来是定义和打开操作一起的,
fstream file("c.las",ios::in ⦩os::out ⦩os::binary ⦩os::nocreate)的,改用open函数后忘记括号了

Open/Read,注意大小写。

大小写有区别么?麻烦讲讲

Tags: , ,

[error][C2679][错误]请教C++ error C2679 错误

09月 1st, 2008 by admin
Posted in VC/MFC | No Comments »

在vc6.0(装上stlport后)和linux下没有错误,可是在vs2005下编译,报错!装上stlport还是报错,这是怎么回事呢?
程序应该没问题才对啊,为什么换了个环境就不好用了呢?!

error C2679: binary '=' : no operator found which takes a right-hand operand of type 'stlp_std::priv::_Rb_tree_iterator <_Value,_Traits>' (or there is no acceptable conversion)
1>        with
1>        [
1>            _Value=SctData,
1>            _Traits=stlp_std::priv::_ConstSetTraitsT <SctData>
1>        ]
1>        d:stlport-5.1.5stlportstl\_tree.h(202): could be 'stlp_std::priv::_Rb_tree_iterator <_Value,_Traits> &stlp_std::priv::_Rb_tree_iterator <_Value,_Traits>::operator =(const stlp_std::priv::_Rb_tree_iterator <_Value,_Traits> &)'
1>        with
1>        [
1>            _Value=SctData,
1>            _Traits=stlp_std::priv::_SetTraitsT <SctData>
1>        ]
1>        while trying to match the argument list '(stlp_std::priv::_Rb_tree_iterator <_Value,_Traits>, stlp_std::priv::_Rb_tree_iterator <_Value,_Traits>)'
1>        with
1>        [
1>            _Value=SctData,
1>            _Traits=stlp_std::priv::_SetTraitsT <SctData>
1>        ]
1>        and
1>        [
1>            _Value=SctData,
1>            _Traits=stlp_std::priv::_ConstSetTraitsT <SctData>
1>        ]

SctData是一个结构体。
双击错误,定位的下列的程序:
set <WordData>::iterator it = pset.begin();

望高手赐教

没用过set。vector这样做是可以的,迭代器相当于指针,不需要深拷贝函数的。是否类型转换上有问题?

引用 1 楼 YP2002CN 的回复:
http://msdn.microsoft.com/en-us/library/h1925w4w(VS.71).aspx

应该是你的pset.begin和set <WordData>之间类型不匹配。需要添加set <WordData>::的拷贝构造函数。

set <WordData>::的拷贝构造函数?
什么意思?
能具体点吗?
在哪里加?怎么加?

引用 2 楼 vcPlayer 的回复:
没用过set。vector这样做是可以的,迭代器相当于指针,不需要深拷贝函数的。是否类型转换上有问题?

我单独开个工程测试了一下,也是没问题的,郁闷!
在vc6里和linux下问什么没问题呢,奇怪?!

等待中……

你的代码如何写的,应该是编译器对某些代码的分析不同引起的

算了,还是用vc6得了

Tags: , , ,

[高人][CxImage][错误]高人请进:CxImage库的错误!!!

08月 30th, 2008 by admin
Posted in VC/MFC | No Comments »

最近在使用CxImage库的过程中发现,

在读取JPEG或者DCM图像时,

分配的内存是图像大小的3倍,

释放的时候只释放了1倍。

究其原因是在此过程中要把JPEG或者DCM转换成BMP,而在此过程中要多次调用Decode()函数,

从而导致了多次分配内存。

用过CxImage的各位有没有发现过这个问题?

PS:由于测试时用的是大图(100M左右),所以调试的时候在内存管理器中内存的变化非常明显。

用软件检测泄漏

BoundsChecker v7.2
http://www.bibidu.com/fileview-611294.html

没发现此问题,你用的是什么版本?最新的?

引用 3 楼 sunyim 的回复:
没发现此问题,你用的是什么版本?最新的?

BMP的不存在这个问题,JPEG我没试,DCM是肯定有这样的问题
你用这个库处理过DCM图像?

Tags: , , ,

[LNK2005][错误][不管]为什么总是LNK2005错误,不管加了 #pragma once 还是 #ifndef __xxxxx__ 还是会说重复定义了不知为什么!

08月 26th, 2008 by admin
Posted in VC/MFC | No Comments »

为什么总是LNK2005错误,不管加了 #pragma once 还是 #ifndef __xxxxx__ 还是会说重复定义了,不知为什么!

我编译 MHServerDEVS[Lib]BaseNetwork 时不出错,但组件时出现如下错误

Compiling…
network.cpp
Linking…
BaseNetworkDll.obj : error LNK2005: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkDll.obj : error LNK2005: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkFactory.obj : error LNK2005: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkFactory.obj : error LNK2005: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkDll.obj : warning LNK4006: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkDll.obj : warning LNK4006: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkFactory.obj : warning LNK4006: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkFactory.obj : warning LNK4006: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
  Creating library ..ObjBaseNetworkDebug/BaseNetwork.lib and object ..ObjBaseNetworkDebug/BaseNetwork.exp
BaseNetwork.exp : warning LNK4070: /OUT:SC_BASENETWORK.dll directive in .EXP differs from output filename "D:ICQ_DOWN备捍荐\DLLBaseNetwork.dll"; ignoring directive
LINK : warning LNK4098: defaultlib "uafxcwd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
D:ICQ_DOWN备捍荐\DLLBaseNetwork.dll : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.

BaseNetwork.dll - 1 error(s), 0 warning(s)

但我看了IID_SC_BASENETWORK_DLL的定义处,已加了 #pragma once
但还是提示重定义,不知为什么!

此代码为一个游戏的源代码!

源代码我已放到这里了!
http://d99net.uubox.net/self.u/temp/MHServerDEVS.rar/

把这些定义复制到一个cpp里面,把头文件里的这些定义前面加上extern。

支持楼上的红猩猩。^0^

引用 2 楼 cnzdgs 的回复:
把这些定义复制到一个cpp里面,把头文件里的这些定义前面加上extern。

因为我一直是用DELPHI编程的,还真的不懂!

BaseNetworkInterface.h
里的改成

// {78771B7B-6E5E-4659-87E4-ABE9F0793AA1}
extern "C" DEFINE_GUID(CLSID_SC_BASENETWORK_DLL, 0×78771b7b, 0×6e5e, 0×4659, 0×87, 0xe4, 0xab, 0xe9, 0xf0, 0×79, 0×3a, 0xa1);

// {DCED45F1-980B-4578-9F1D-C0586A5E3964}
extern "C" DEFINE_GUID(IID_SC_BASENETWORK_DLL, 0xdced45f1, 0×980b, 0×4578, 0×9f, 0×1d, 0xc0, 0×58, 0×6a, 0×5e, 0×39, 0×64);

在CPP里要怎样定义,我复制这个进去CPP里,也是提示有错!

可否改一个可以编译通过的代码给我看看啊,万分感激啊~ 我都在网上查了
二三天了!希望帮忙帮忙了

可能对懂的人很简单,但对于我不懂的人来说,实在不知如何下手了!

我没有Vc6,不过用VS2008编过了,将stdafx.h中的以下两个函数声明注释掉就可以了

/*
STDENTRY DllRegisterServer(void);

STDENTRY DllUnregisterServer(void);
*/
结果:
—— Build started: Project: BaseNetwork, Configuration: Debug Win32 ——
Linking…
.BaseNetworkdll.def(4) : warning LNK4017: DESCRIPTION statement not supported for the target platform; ignored
  Creating library …ObjBaseNetworkDebug/BaseNetwork.lib and object …ObjBaseNetworkDebug/BaseNetwork.exp
BaseNetwork.exp : warning LNK4070: /OUT:SC_BASENETWORK.dll directive in .EXP differs from output filename 'D:ICQ_DOWN备捍荐\DLLBaseNetwork.dll'; ignoring directive
LINK : warning LNK4098: defaultlib 'uafxcwd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
Embedding manifest…
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation.  All rights reserved.
Build log was saved at "file://d:MHServerDEVS游戏源码ObjBaseNetworkDebugBuildLog.htm"
BaseNetwork - 0 error(s), 3 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

怎么我照你的做,还是不成!

——————–Configuration: BaseNetwork - Win32 Debug——————–
Linking…
BaseNetworkDll.obj : error LNK2005: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkDll.obj : error LNK2005: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkFactory.obj : error LNK2005: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkFactory.obj : error LNK2005: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj
BaseNetworkDll.obj : warning LNK4006: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkDll.obj : warning LNK4006: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkFactory.obj : warning LNK4006: _IID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
BaseNetworkFactory.obj : warning LNK4006: _CLSID_SC_BASENETWORK_DLL already defined in BaseNetwork.obj; second definition ignored
  Creating library ..ObjBaseNetworkDebug/BaseNetwork.lib and object ..ObjBaseNetworkDebug/BaseNetwork.exp
BaseNetwork.exp : warning LNK4070: /OUT:SC_BASENETWORK.dll directive in .EXP differs from output filename "D:ICQ_DOWN备捍荐\DLLBaseNetwork.dll"; ignoring directive
LINK : warning LNK4098: defaultlib "uafxcwd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
D:ICQ_DOWN备捍荐\DLLBaseNetwork.dll : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.

BaseNetwork.dll - 1 error(s), 0 warning(s)

DEFINE_GUID 之前不要再加extern "C"修饰符了,因为这个宏本身就已经包含了此修饰符

引用 8 楼 jameshooo 的回复:
DEFINE_GUID 之前不要再加extern "C"修饰符了,因为这个宏本身就已经包含了此修饰符

去掉是没有了那些提示的!

Tags: , , ,

[实现][Windows][错误]怎样实现Windows错误报告

08月 21st, 2008 by admin
Posted in VC/MFC | No Comments »

怎么样才能让我的程序在异常退出时产生一个错误报告呢?
最好能给个例子。多谢!

我的程序是一个多模块的,比较大的程序,不可能每一种异常情况都去捕捉。我想问的是那种正规程序在
发送错误时Windows都会弹出的错误报告的功能是怎么实现的。

补充一下,如何在生成错误报告的同时在Windows的系统日志中写入一条应用程序异常退出的日志。
在线等。。。。。。。。

帮顶

操作系统提供了我们结构化异常,当出现异常的时候,我们还可以用“回朔”方法来更改异常的再次发生

没有明白,我只是想实现在我的程序崩掉的时候,弹出一个Windows Error Reporting对话框,并写入一条系统
日志。有例子吗?

在程序中不要扑获异常,根据Windows捕获异常的步骤,最后一步骤Windows就会捕获异常,并写日志和弹出ErrorReporting。

Tags: , , ,