1

プロジェクトの win32 コンソール アプリケーションを C++ Windows フォームに変換するにはどうすればよいですか? これは私の win32 コンソール コードですが、C++ Windows フォームに変換したいと考えています。

#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<string>
#include<iostream>

using namespace std;

const char TAB='\t';
char varlook;
char s[100];
char name[10];




char str[100],str1[100],str2[100],str3[100],str4[100],var[100];
    int i=0,l,l1,j=0,k=0,d=0;   
    int m=0;
    char keyword[100][100]={"int","float","char","double","if","else","for","while","do","auto","break","case","const",
                            "switch","continue","enum","extern","goto","short","register","return","sizeof","static",
                            "struct","typedef","union","void","while","signed","unsigned","default"};
void main(void)
{
gets(str);
while(str[i]!='\0')
{
while(isspace(str[i]))
i++;
if(isalpha(str[i]))
{
k=0;
while(isalnum(str[i]))
{
str1[k]=str[i];
i++;
k++;
}
str1[k]='\0';
l=0;
while(j<100)
{
if (strcmp(str1,keyword[j])==0)
{
l=1;
break;
}
j++;
}
if(l==1)
{
printf("\n   %s    ERROR- it is keyword ",str1);
break;
}
else
{
printf("\n   %s    Valid Identifier ",str1);
break;
l=0;
while(str1[l]!='\0')
{
var[m++]=str1[l++];
}
}
}
else if (isdigit(str[i]))
{
k=0;
while(isalnum(str[i]) || str[i]=='.')
{
if(str[i]=='.')
d++;
str2[k++]=str[i++];
}
printf("\n   %s    ERROR- it is digit ",str2);
break;
}
}

getche();
}

プロジェクトの win32 コンソール アプリケーションを C++ Windows フォームに変換するにはどうすればよいですか? これは私の win32 コンソール コードですが、C++ Windows フォームに変換したいと考えています。

4

1 に答える 1

1

C++/CLI を利用できます

CLR の空のプロジェクトを作成します。MyForm.cpp に MyForm という新しいアイテム Visual C++ / UI / Windows フォームを追加します。

int main()
{
  Project1::MyForm^ dlg = gcnew Project1::MyForm;
  dlg->ShowDialog();
}

次に、入力用のテキストボックス、コンテンツを評価するためのボタン、および結果を表示するためのラベルを追加して、UI を設計します。

ボタンのイベント ハンドラーを追加します。ボタンを押すと、テキスト ボックスの内容が読み取られ、結果がラベル ボックスに配置されて表示されます。

これにより、必要最小限のプログラムが提供されますが、少なくとも迅速なフレームワークが提供されます。

std::vector や std::map などを使用してキーワードを指定するより C++ の方法を使用することをお勧めします - 物事がとても簡単になります。

于 2013-11-13T12:14:05.860 に答える