为此.cpp文件创建一个h文件

时间:2012-03-30 07:25:30

标签: visual-c++

这是.cpp文件的内容。我希望Parse可以从C#项目中运行。

#include "stdafx.h"
#include "DateTimeParser.h"

using namespace std;

System::DateTime Parse(string myString)
{
    int year, month, day;
    sscanf_s(myString.c_str(), "%4d-%2d-%2d",&year, &month, &day);
    System::DateTime dateTime = System::DateTime(year,month,day);
    return dateTime;
}

如何定义h文件?我尝试了以下内容。

#pragma once
#include <iostream>

using namespace System;

ref class DTParser
{
    public:
        System::DateTime Parse(std::string myString);
};

我收到了这个错误:

1>------ Build started: Project: DateTimeParser, Configuration: Debug Win32 ------
1>  DateTimeParser.cpp
1>DateTimeParser.obj : error LNK2020: unresolved token (06000001) DTParser::Parse
1>DateTimeParser.obj : error LNK2020: unresolved token (06000002) DTParser::main
1>\Debug\DateTimeParser.dll : fatal error LNK1120: 2 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

2 个答案:

答案 0 :(得分:0)

根据您的说法,我认为问题不是头文件。问题是您没有为CLR编译C ++代码。 您必须将C ++代码放在单独的程序集中,并在项目设置中激活公共语言运行时支持。

答案 1 :(得分:0)

在你的头文件中有

System::DateTime Parse(std::string myString);

这可能只是

DateTime Parse(std::string myString);

由于不需要命名空间