こんにちは、通常はコンソールで実行するプログラムを持っています。今はそれをユーザー インターフェイスにする必要があります。
そこで、新しいプロジェクト (Windows フォーム) を作成し、コンソール プログラムを含むプログラムからヘッダー .h と .cpp を追加し始めました。
変数をヘッダーから Windows フォームのテキスト ボックスに出力する必要があります。これが私のコードです:
これは、意味を出力するために必要な変数です
test.h
string **meaning**;
test.cpp で:
void Engine::Conclude(void)
string Name;
**meaning**= assignmeaning(Name)
cout<<"" <<"->"<<**meaning**;
CWorkspace.cpp
#include "stdafx.h"
#include <fstream>
#include <locale.h>
#include <iostream>
#include "WorkSpace.h"
using namespace std;
CWorkspace::CWorkspace()
{
m_pBuilder= new Compiler();
}
void CWorkspace::LoadKnowledge()
{
CPROPNode* Arbol=Builder->SyntacticTree;
/*This is not relevant*/
fstream file("..\\Text.txt", ios::in);
if(file.is_open())
{
if(Builder->Compiler(file))
{
cout<<" ok"<<endl;
/*Motor is a local variable from CWorkspace*/
Motor = new InferenceEngine(Builder->SyntacticTree,Builder);
if(Motor->ValidateKnowledge())
{}
}
}
だから私はこれを行うために私のテキストボックスで試しました:
#include test.h
#include <string>
#include <msclr\marshal_cppstd.h>
#include <msclr\marshal_cppstd.h>
using namespace std;
namespace mainForm
{
public ref class Res: public System::Windows::Forms::Form
{
public:
CWorkspace* Workspace;
Res(void)
{
InitializeComponent();
}
/*
/*
/*Auto generated code from windows form*/
*/
*/
private: System::Void Resultado_Load(System::Object^ sender, System::EventArgs^ e) {
string s = Workspace->Motor->meaning;
String^ hola = gcnew String(s.cstr());
textBox1->Text= hola;
しかし、どういうわけかコンパイルできません。この変数をテキストボックスに書き込む方法を知っている人はいますか?
これは、コンパイル時に発生するエラーです。
エラー C2039: 'cstr': は 'std::basic_string<_Elem,_Traits,_Ax> のメンバーではありません
これが変数を出力する正しい方法であるかどうかはわかりません。