2012-03-30 104 views
0

这是.cpp文件的内容。我希望Parse可以从C#项目运行。为这个.cpp文件创建一个h文件

#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 ========== 
+0

尝试改变定义系统::日期时间DTParser :: Parse(string myString)在您的cpp文件中 – Jeeva 2012-03-30 09:27:06

回答

0

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

0

在你的头文件,你有

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

这可能仅仅是

DateTime Parse(std::string myString);

由于不需要命名空间