• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入門サイトのサンプルプログラムがビルド出来ません)

入門サイトのサンプルプログラムがビルドできません

LOHAの回答

  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

>コピペなので入力誤りはないと思うのですが、何がいけないのでしょうか? ・ちゃんとソースコードの後にある、画像通りの方法でプロジェクトを作成したか ・コピペにミスが無いか など、もう一度確認してみてください(多くのエラーが出るということは、そういう基本的な部分にミスがあるのではないかと思うので)。 #プログラミング初心者でなかったら以下は無視していただいて結構です そもそも、VisualC++(正確にはC++/CLI)はプログラミング初心者が学ぶものとして極めて不適切です。「C++/CLI」や「.NET Framework」という言葉の意味もわからない人や、ましてや「C言語」すら分からないような人がVC++でプログラミングを行うのは無謀すぎます。 もし「C言語」ができないのであれば、そちらから学習から始めるのをお勧めします。 もしくは、GUIな(ウィンドウとかボタンとかを使った)プログラミングをしたいのであれば「VisualC++」よりも「VisualC#」や「VisualBasic」の方をお勧めします。

Naoto-can
質問者

補足

ご回答有難う御座います。 何度も確かめてみましたが、どうしてもミスが見つけられませんでした。 エラーメッセージを読むと、最初のほうで宣言しているグローバル変数?のxが 宣言が間違ってるとか、アクセス出来ないみたいなことですよね? オススメに従って、C言語の勉強から入りたいと思いますが 今のが気になって仕方がないので解決法をご助言頂ければ嬉しいです。

関連するQ&A

  • サンプルプログラムをコンパイルするとエラーがでる。

    Visual C++ 2005 Express Editionを勉強中で、あるWEBサイトで紹介されていたサンプルプログラムhttp://homepage3.nifty.com/ishidate/vcpp05_3/vcpp05_3.htm を使って、コンボボックスやテキストボックスを配置して以下のコードを入力しました。 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { double a=double::Parse(textBox1->text); double b=double::Parse(textBox2->text); int indexNumber=comboBox1->SelectedIndex; double c; switch(indexNumber){ case 0:c=a+b;break; case 1:c=a-b;break; case 2:c=a*b;break; case 3:c=a/b;break; } label1->text=c.ToString(); } private:System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e){ comboBox1->SelectedIndex=0; } コードを”デバッグなしで実行”で動かそうとすると以下のようなエラーメッセージが出力されました。 >C801.cpp 1>c:\mywork\felicareader_test\c801\c801\Form1.h(138) : error C2248: 'System::Windows::Forms::Control::text' : private メンバ (クラス 'System::Windows::Forms::Control' で宣言されている) にアクセスできません。 1> c:\mywork\felicareader_test\c801\c801\Form1.h(23) : 'System::Windows::Forms::Control::text' の宣言を確認してください。 1> c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : 'System::Windows::Forms::Control' の宣言を確認してください。 1>c:\mywork\felicareader_test\c801\c801\Form1.h(139) : error C2248: 'System::Windows::Forms::Control::text' : private メンバ (クラス 'System::Windows::Forms::Control' で宣言されている) にアクセスできません。 1> c:\mywork\felicareader_test\c801\c801\Form1.h(23) : 'System::Windows::Forms::Control::text' の宣言を確認してください。 1> c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : 'System::Windows::Forms::Control' の宣言を確認してください。 1>c:\mywork\felicareader_test\c801\c801\Form1.h(148) : error C2248: 'System::Windows::Forms::Control::text' : private メンバ (クラス 'System::Windows::Forms::Control' で宣言されている) にアクセスできません。 1> c:\mywork\felicareader_test\c801\c801\Form1.h(23) : 'System::Windows::Forms::Control::text' の宣言を確認してください。 1> c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : 'System::Windows::Forms::Control' の宣言を確認してください。 1>ビルドログは "file://c:\mywork\felicareader_test\C801\C801\Debug\BuildLog.htm" に保存されました。 1>C801 - エラー 3、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== エラーが3つでて、それをダブルクリックしてみると、どうやら、 ・double a=double::Parse(textBox1->text); ・double b=double::Parse(textBox2->text); ・label1->text=c.ToString(); この3つの文に問題があるということらしいのですが、原因がよくわかりません。 この原因わかるかたいらっしゃいましたらぜひご教授よろしくお願いいたします。

  • DLLサンプルプログラムが動きません

    Delphi XE5 starter で、 http://www39.atwiki.jp/kgh07155/pages/28.html を参考にして以下のようなプログラムを作りました。 コンパイルはできたのですが、Button1をクリックすると「TDllFormリソースが見つかりません」というエラーメッセージが出ます。 どういう風に修正すればいいのでしょうか? //***************************** //SamoleUnit2.pasの内容 unit Unit_Sample2; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} function ShowDLLForm(hOwner: HWND): TModalResult; stdcall; external 'DLLSample.dll'; procedure ShowDLLForm2; external 'DLLSample.dll'; // ここまで、DLLを呼び出すための記述。 procedure TForm1.Button1Click(Sender: TObject); begin ShowDLLForm(Application.Handle); // DLL側でフォームを作成した後、 // 通常のフォームのShowModalメソッドと同じ動作をして // 作成したフォームを破棄。 end; procedure TForm1.Button2Click(Sender: TObject); begin ShowDLLForm2; // DLL側でフォームを作成した後、 // 作成したフォームを表示。 end; end. //******************************** //DllSample.dprの内容 library DLLSample; uses System.SysUtils, System.Classes, Windows, Forms, Controls, Unit_DLLForm in 'Unit_DLLForm.pas' {Form1}, Unit_Sample2 in 'Unit_Sample2.pas' {Form2}; type TDllForm = class(TForm) end; {$R *.res} function ShowDLLForm(hOwner: HWND): TModalResult; stdcall; var DllForm:TDllForm; begin Application.Handle := hOwner; // 呼び出し元の情報をDLL側が受け取る。 DllForm := TDllForm.Create(Application); // DLL側でフォームを作成する。 // フォームに配置された各オブジェクトも、自動で作成される。 Result := DllForm.ShowModal; // 返し値を設定。 DllForm.Free; // DLL側で作成したフォームを破棄。 Application.Handle := 0; // 呼び出し元の情報を破棄。 end; procedure ShowDLLForm2; var DllForm:TDllForm; begin DllForm := TDllForm.Create(Application); // DLL側でフォームを作成する。 DllForm.Show; // 作成したフォームを表示。 end; exports ShowDLLForm, ShowDLLForm2; begin end. //******************************** //unit_DLLForm.pasの内容 unit Unit_DLLForm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} end.

  • VC++ TextBoxの定義

    お世話になります。 c++でTextBoxの入力制限(数値のみ)を、下記URLを参考に作成しているのですが、 TextBoxの動作を定義するところが、コンパイルエラーになります。 http://dobon.net/vb/dotnet/control/numerictextbox.html 【エラーになる定義部】 this->TextBox->KeyPress += System::Windows::Forms::KeyEventHandler(this, &MainForm::KeyPressEventArgs); ※ エラー内容は「XXXはYYYのメンバではありません」 「system::」のところか「&MainForm」のところの定義が悪いのだと思うのですが、 どの様に宣言すればよいのか教えていただけないでしょうか 【関数】 System::Void TextBox_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e) { 本文 }

  • あれれ、プログラムが閉じれない!

    おせわになります。http://pc.mogeringo.com/archives/35848 にあります FlickKeyboard をDLして使ったところ、プログラムが終了できなくなりました。 Just-In-Time (JIT) デバッグを呼び出すための詳細については、 ダイアログ ボックスではなく、このメッセージの最後を参照してください。 ************** 例外テキスト ************** System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Interop.IWshRuntimeLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。 ファイル名 'Interop.IWshRuntimeLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' です。 場所 FlickKeyboard.SettingForm.SettingForm_FormClosing(Object sender, EventArgs e) 場所 System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e) 場所 System.Windows.Forms.Form.WmClose(Message& m) 場所 System.Windows.Forms.Form.WndProc(Message& m) 場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 警告: アセンブリ バインドのログ記録がオフにされています。 アセンブリ バインドのエラー ログを有効にするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) を 1 に設定してください。 注意: アセンブリ バインドのエラー ログに関連するパフォーマンス ペナルティがあります。 この機能をオフにするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] を削除します。 ************** 読み込まれたアセンブリ ************** mscorlib アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.296 (RTMGDR.030319-2900) コードベース: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll ---------------------------------------- FlickKeyboard アセンブリ バージョン: 1.0.0.0 Win32 バージョン: 1.0.0.0 コードベース: file:///C:/Users/aoshizu/AppData/Local/Temp/Temp1_FlickKeyboard_ver1.22.zip/FlickKeyboard_ver1.22/FlickKeyboard.exe ---------------------------------------- System.Windows.Forms アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.1002 built by: RTMGDR コードベース: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System.Drawing アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.1001 built by: RTMGDR コードベース: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.1001 built by: RTMGDR コードベース: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Configuration アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.1 (RTMRel.030319-0100) コードベース: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Xml アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.233 built by: RTMGDR コードベース: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- System.Windows.Forms.resources アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.1 built by: RTMRel コードベース: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ja_b77a5c561934e089/System.Windows.Forms.resources.dll ---------------------------------------- mscorlib.resources アセンブリ バージョン: 4.0.0.0 Win32 バージョン: 4.0.30319.235 (RTMGDR.030319-2300) コードベース: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ja_b77a5c561934e089/mscorlib.resources.dll ---------------------------------------- ************** JIT デバッグ ************** Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、 またはコンピューター (machine.config) の構成ファイルの jitDebugging 値を system.windows.forms セクションで設定しなければなりません。 アプリケーションはまた、デバッグを有効にしてコンパイルされなければ なりません。 例: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、 ハンドルされていない例外はすべてコンピューターに登録された JIT デバッガーに設定されなければなりません。

  • VC++でラジオボタンを削除したら

    Microsoft VC++ 2010 Expressでプログラミングをやってます。 ラジオボタンを使っていて、一旦それを削除して、再度ラジオボタンをつけ直したら、なぜかビルドの時にエラーが出るようになってしまいました。 Form1.h(481): error C2039: 'Enable' : 'System::Windows::Forms::RadioButton' のメンバーではありません。 こんなエラーです。どのようにすれば解消できますでしょうか?

  • 「名前'imgMap'は宣言されていません。」というビルドエラーが・・・

    VS2003.NETで開発中です。 「名前'imgMap'は宣言されていません。」というビルドエラーがimgMapの箇所で発生します。 しかし、サンプルコードやテキストには、どこにも宣言らしきものが必要とは書かれていないのですが、どのような宣言が必要なのでしょうか? ご教授いただけると助かります。 -----------------------------   ・   ・   ・ For Each oRowUSER In oDSUSER.Tables("USER").Rows  imgMap.Add(CStr(oRowUSER("USER")).Trim, System.Drawing.Bitmap.FromFile("..\images\" & CStr(oRowUSER("USER")).Trim & ".gif")) Next   ・   ・   ・ -----------------------------

  • C#のビルド方法について質問です。

    IDEをつかわず、コマンドプロンプト上でC#のソースをビルドする時の方法について質問です。 まず以下のようなコードがあるとします。 まずC:\の直下に以下のソースを作成しました。 =================================================== using System; using System.IO; using System.Windows.Forms; namespace Add.TestClass{ public class LibraryClass{ public LibraryClass(){ MessageBox.Show("クラスライブラリコンストラクタの実行"); } } } =================================================== 上記クラスをdllファイルとしてビルドします。 csc /t:library /out:Add.TestClass library.class  と上記のようにビルドしました。するとAdd.TestClass.dllというファイルが確かにできあがりました。 次にこれを実際に実行するためのファイルをつくりました。 それが以下になります。 同じくC:\直下に以下のようなソースを作成します。 =================================================== using System; using System.IO; using System.Windows.Forms; using Add.TestClass; public class MainClass{ public static void Main(String [] args){ LibraryClass obj = new LibraryClass(); } } =================================================== このファイルをビルドします。 csc /r:Add.TestClass.dll main.cs としてビルドし、その後 mainというファイルを実行しました。 するとキチンとMessageBoxで MessageBox.Show("クラスライブラリコンストラクタの実行");が実行されました。 ここまでは問題ないのですが、この場合 main.exeファイルとAdd.TestClass.dllというファイルが 同じ階層に存在するような状態になっているのですが、これを main.exeファイルのある階層にdllというディレクトリを作成し そのdllの中にAdd.TestClass.dllというファイルをおいた階層状況でmain.exeファイルを実行したいのです。 そのためにまず、 csc /r:”C:\dll\Add.TestClass.dll" main.cs 上記のようなビルドオプションでビルドしてみたのですが、ビルドはとおりましたが -------------------------------------------------------------------------------------------------------------------- ハンドルされていない例外: System.IO.FileNotFoundException: ファイルまたはアセン ブリ 'Add.TestClass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'、ま たはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりませ ん。 場所 MainClass.Main(String[] args) -------------------------------------------------------------------------------------------------------------------- というエラーがでました。 このdllファイルを特定の任意のディレクトリ内において、main.exeを実行してうまく動くようにするためには どのようなビルドオプションをつけたらいいのでしょうか? よろしくご教授お願いいたしま。

  • COBOLのプログラムがビルドできません;;

    今年の4月からシステム関係の会社に就職する者です。 就職にあたって会社からの課題としてCOBOLのプログラムを転記して実行するというものが出たのですが、どうしてもビルドエラーになってしまい困っています。 IDENTIFICATION DIVISION. PROGRAM-ID.  KADAI005 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. / DATA DIVISION. FILE SECTION. / WORKING-STORAGE SECTION. 01 W-九九TBL. 03 W-行 OCCURS 9. 05 W-列 OCCURS 9. 07 W-積 PIC 9(02). 01 W-指標1 PIC 9(02). 01 W-指標2 PIC 9(02). 01 W-合計 PIC 9(04). / PROCEDURE DIVISION. メインコントロール        SECTION. メインコントロールS. メインコントロール   PERFORM 初期処理. PERFORM 主処理. PERFORM 終了処理. メインコントロールE. EXIT. 初期処理             SECTION. 初期処理S. ワークエリアの初期化 MOVE ZERO TO W-九九TBL W-合計. 初期処理E. EXIT. 主処理              SECTION. 主処理S. PERFORM VARYING W-行 FROM 1 BY 1 UNTIL W-行 > 9 PERFORM VARYING W-列 FROM 1 BY 1 UNTIL W-列 > 9 COMPUTE W-積(W-行,W-列) = W-行 * W-列      COMPUTE W-合計 = W-合計 + W-行 * W-列    END-PERFORM END-PERFORM. DISPLAY "合計 =" W-合計. DISPLAY "5×4=" W-積(5,4). DISPLAY "2×7=" W-積(2,7). 主処理E. EXIT. 終了処理             SECTION. 終了処理S. プログラム終了 STOP RUN. 終了処理E. EXIT. 提出期限が明日に迫っていて焦っています; 回答よろしくお願いします。

  • Windows7 Build 7601 Error

    Windows 7(英語版) を立ち上げて3~4時間ほどするとWindows 7 の画面右下に次のようなメッセージが出ます。 Windows 7 Build 7601 This copy of Windows is not genuine 以前も質問した内容ですが、まだ修復できていないのでまた質問させていただきます。 色々と調べて regeditを使って > HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Notify の中のフォルダーWgaLogonすべてを消去しました。 C:\WINDOWS\system32\WgaLogon.dll C:\WINDOWS\system32\WgaTray.exe C:\WINDOWS\system32\LegitCheckControl.dll も消去しました。 Windows Genuine Advantage (WGA)のファイルも消去。 Windows Update もdisableにしました。 それでも数時間後には同じメッセージが画面右下に表示されます。 このメッセージを表示させないようにするにはどのようにしたらよいのでしょうか? よろしくお願いします。 ちなみに Control Panel > System and Security > System を表示させるとこのエラーメッセージは消えます。

  • フォームのテキストコントロールへの出力

    Cは分かりますが、C++初心者です。 よろしくお願いします。 namespace sample1 外にある関数から、フォームのコントロールにアクセスするには、 どうしたらいいのでしょうか? ========================================================== #pragma once void DspData( ReadData *readdata ); //コールバック関数宣言 namespace sample1 { 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 __gc class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); } protected: void Dispose(Boolean disposing) { if (disposing && components) { components->Dispose(); } __super::Dispose(disposing); } private: System::Windows::Forms::Label * label1; private: System::Windows::Forms::Button * start; private: System::Windows::Forms::Button * end; public: System::Windows::Forms::TextBox * textBox1; private: System::ComponentModel::Container * components; void InitializeComponent(void) { } private: System::Void start_Click(System::Object * sender, System::EventArgs * e) { } }; } //------------------------------------------------ // DspData //------------------------------------------------ void DspData( ReadData *readdata ) { //***↓ここでフォームのテキストボックスへの表示を行いたい。***** textBox1->set_text("ここで出力") return; } ==========================================================