| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 604 人关注过本帖
标题:[求助]com编程新手,出现个奇怪的错误,请高手指点,多谢
只看楼主 加入收藏
liuxuer
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-22
收藏
 问题点数:0 回复次数:9 
[求助]com编程新手,出现个奇怪的错误,请高手指点,多谢
初学COM , 按照网上的一个例子来,但是编译过程中出现这样的错误, f:\workspace\mathcom\mathfactory.cpp(4) : fatal error C1010: unexpected end of file while looking for precompiled header directive Error executing cl.exe. 不知道怎么回事,将这个文件删到只剩下头文件了,还会提示文件末尾有错,不知道是为什么?应该也没有什么词法错误,请高人指点啊,帮忙分析分析也行,多谢先
搜索更多相关主题的帖子: 分析 编程 unexpected 网上 
2005-04-22 18:57
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 
把这个CPP文件的代码贴出来看看.

I am a big fan of c plus plus.
2005-04-23 23:46
liuxuer
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-22
收藏
得分:0 
该文件夹代码在MathCOM.rar
MathFactory.cpp文件源码如下,project也已上传,谢谢各位

// MathFactory.cpp: implementation of the CMathFactory class.
//
//////////////////////////////////////////////////////////////////////
#include "math.h"
#include "MathFactory.h"
 
extern LONG g_cObjectAndLocks;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
 
 
STDMETHODIMP_(ULONG) CMathFactory::AddRef(void)
{
 return InterlockedIncrement(&m_cRef);
}
 
STDMETHODIMP_(ULONG) CMathFactory::Release(void)
{
 return ::InterlockedDecrement(&m_cRef);
}
 
STDMETHODIMP CMathFactory::QueryInterface(REFIID riid,void ** ppv)
{
 *ppv=NULL;
 if(riid==IID_IUnknown||riid==IID_IClassFactory)
 {
  *ppv=static_cast(this);
  reinterpret_cast(*ppv)->AddRef();
  return S_OK;
 }
 else
  return (*ppv=0),E_NOINTERFACE;
}
 
STDMETHODIMP CMathFactory::CreateInstance(IUnknown * pUnkOuter,REFIID riid,void ** ppv)
{
 *ppv=NULL;
 // 现在不支持聚合
 if(pUnkOuter!=NULL)
  return CLASS_E_NOAGGREGATION;
 CMath * pMath=new CMath;
 if(pMath==NULL)
  return E_OUTOFMEMORY;
 HRESULT hr=pMath->QueryInterface(riid,ppv);
 
 if(FAILED(hr))
  delete pMath;
 return hr;
}
 
STDMETHODIMP CMathFactory::LockServer(BOOL fLock)
{
 if(fLock)
  ::InterlockedIncrement(&g_cObjectAndLocks);
 else
  ::InterlockedDecrement(&g_cObjectAndLocks);
 return NOERROR;
}
2005-04-25 09:41
liuxuer
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-22
收藏
得分:0 
上传的文件哪里去了?上传了这个文件啊MathCOM.rar
2005-04-25 09:46
liuxuer
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-22
收藏
得分:0 
应该跟这个文件无关,将其删除后,还会出现这样的错误,在另外一个文件上,而将这两个文件都删掉以后(也就是说project中只剩下了一个包括dllmain的主cpp文件)就没有错误了,另外我试着建了一个非常简单的文件try.h,try.cpp加入项目中编译竟然也出现同样的错误,难道是需要什么设置嘛? 问:关于往project中加入cpp文件还需要别的设置嘛?我做的如下:将.h,.cpp文件加入到工程中,在主文件中include .h文件 还是有别的可能? 附try.h,try.cpp //try.h void function(int *a); //try.cpp #include "try.h" void function(int *a) { *a = *a++; }
2005-04-25 12:43
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 
unexpected end of file while looking for precompiled header directive 在寻找预编译头文件的时候意外的遇到了文件尾. 也就是说,你没有预编译头文件,但是却在工程里使用了预编译头文件,当编译的时候,编译器要查找,所以没有找到. 使用预编译头文件的标志是: /Yu 你直接去掉它就行了,或者加上需要的预编译头文件.

I am a big fan of c plus plus.
2005-04-25 13:10
liuxuer
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-22
收藏
得分:0 
问一个弱的问题 : /Yu 标志在哪里哪?
/Yu 标志在哪里哪?即在哪里设置预编译相关选项哪?

另外我通过在try.cpp中 include "stdafx.h",没有了这个错误,不知道why
2005-04-25 16:10
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 
在project->setting->options里

I am a big fan of c plus plus.
2005-04-25 22:01
liuxuer
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-22
收藏
得分:0 
多谢,找到
2005-04-26 15:58
好学天才猪头
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-19
收藏
得分:0 
是只把那个/Yu去掉啊 还是后面的也要删掉啊
请教下 谢谢了哦
2006-10-19 01:25
快速回复:[求助]com编程新手,出现个奇怪的错误,请高手指点,多谢
数据加载中...
 
   



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

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