【发布时间】:2014-07-12 13:53:36
【问题描述】:
我有一个使用 C++/CLI 代码的 C# 项目。我在 C++/CLI 中有一个名为 Main 的托管类,我有一个名为 codemain 的非托管类。在 C# 中,我创建了一个托管类的对象并使用它,但是当我运行我的项目时,我遇到了一些错误——其中大部分是:cm : undeclared identifier。
我所有的代码都是seaCV 命名空间。当我在托管类 (Main) 之外的 seaCV 命名空间中定义 cm 对象时,我的项目运行没有错误,但是当我在托管类中定义 cm 时,我得到了那个错误。问题出在哪里?
seaCV.h 文件中我的托管班级:
#pragma once
#include <iostream>
#include "cv.h"
#include "cvaux.h"
#include "highgui.h"
using namespace System;
namespace seaCV
{
public ref class Main
{
public:
codemain *cm;
Main();
~Main();
void initizalize(int x, int y, int x2, int y2, int tr_ind);
};
}
还有seaCV.cpp 文件:
#include "seaCV.h"
#include "codemain.h"
namespace seaCV
{
void Main::initizalize (int x, int y, int x2, int y2, int trix) {
cm->init(x,y,x2,y2,trix);
}
Main::Main() {
cm=new codemain();
}
Main::~Main() {
delete cm;
cm=0;
}
}
最后,我的非托管代码在codemain.h:
#pragma once
#include "cv.h"
#include "cvaux.h"
#include "highgui.h"
namespace seaCV
{
public class codemain
{
public:
int xc,yc,xr,yr;
codemain(void) {
xc = xr = yc = yr = 1;
}
void init(int x, int y, int x2, int y2, int tracker_index) {
xc = x;
yc = y;
xr = x2;
yr = y2;
...
}
};
}
【问题讨论】:
标签: c# class visual-studio-2012 c++-cli