分類:[C++/CLI]
開発環境・使用言語:VC++2008 CLR
Form1.hでvectorを作りform2.hに参照渡しをして使用したいのですが
form2の受け取り void SetData(vector<int>% a_v) で警告がでてしまいます
warning C4677: 'SetData': 公開されたメンバのシグネチャはアセンブリ プライベート型 'cliext::vector<_Value_t>' を含んでいます。
http://msdn.microsoft.com/ja-jp/library/0wb44ssy(VS.90).aspx
'cliext::vector<_Value_t>'はpublicではないので含んではいけない警告?
引数の仕方が悪くて警告が出ていると思うのですが
どういう書き方をすれば警告を回避できるのかわかりません
ご指南お願いします
//Form1.h
#pragma once
#include "form2.h"
namespace vector_form {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
vector<int>^ v = gcnew vector<int>();
vector<int>% a_v = *v;
for (int i = 0; i < 10; i++)
{
v->push_back(i);
}
form2^ f2 = gcnew form2();
f2->SetData(a_v);
f2->Show();
}
protected:(略)
//form2.h
#pragma once
#include <cliext/vector>
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace cliext;
namespace vector_form {
public ref class form2 : public System::Windows::Forms::Form
{
public:
form2(void)
{
InitializeComponent();
}
void SetData(vector<int>% a_v)
{
for each(int item in a_v)
{
textBox1->AppendText(item + "\r\n");
}
}
protected:(以下略)
|