专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > .NET Framework

急问!托管类(ref)是否不能编译成静态库(.lib)给别人调用?该怎么解决

发布时间:2011-06-23 14:37:35 文章来源:www.iduyao.cn 采编人员:星星草
急问!!:托管类(ref)是否不能编译成静态库(.lib)给别人调用??
XSPT.h
C/C++ code
#pragma once
using namespace System;
ref class CXSPT
{
public:
    CXSPT(void);
    virtual ~CXSPT(void);
public:
    void Parser(void);
private:
    String^ m_xmlName;
    String^ m_schemaName;
};

XSPT.cpp
C/C++ code
#include "StdAfx.h"
#include "XSPT.h"
CXSPT::CXSPT(void)
{
}
CXSPT::~CXSPT(void)
{
}
void CXSPT::Parser(void)
{
}


问题:
在VS2005中
1)首先我将上面的文件(XSPT.h和XSPT.cpp)编译成静态库(XSPT.lib);
2)然后,我在另外的工程里调用生成的(XSPT.lib),当我加入头文件(XSPT.h),和包含进相应静态库(XSPT.lib)后,却提示

出现如下错误:
1>XSPTTST.obj : error LNK2020: 无法解析的标记(06000001) CXSPT::.ctor
1>XSPTTST.obj : error LNK2020: 无法解析的标记(06000002) CXSPT::~CXSPT
1>XSPTTST.obj : error LNK2020: 无法解析的标记(06000003) CXSPT::Parser
1>D:\My Projects\XSPTool_TST\Debug\XSPTool_TST.exe : fatal error LNK1120: 3 个无法解析的外部命令

请问大家:
这是什么原因啊?难道托管类(ref)不能编译成静态库(.lib)给别人调用?



------解决方案--------------------
托管C++完全是另外一个语言,把它跟本地C++划清界限吧。托管类库只生成dll文件,没有静态库,也只能给托管C++用。
还有,代码必须写在头文件里,托管CLR没有声明,不需要将头与逻辑代码分开。所以才会出错。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: