問題タブ [classwizard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
2142 参照

mfc - MS VC++ 6 クラス ウィザード

OK、私が開発しているアプリケーションは、DOS の C からさまざまな種類の C++ を経て、過去 16 年間ほぼ継続的に開発されてきましたが、現在は主に MFC と StingRay GUI およびその他のさまざまな SDK を備えた C++ に基づいています。

私はリリース ビルドに VS 2005 を使用していますが、GUI ビルドの多くにはまだ MSVC 6 を使用しています。これは、この環境では ClassWizard がその後の弱い同等のツールよりもはるかに高速であるためです。ClassWizard を使用して、独自のユーザー定義型のコードを自動的に生成していることに注意してください (カスタム DDXを参照)。多くのメンバー変数とメソッドを一度に追加するのが好きです。Visual Studio の新しいバージョンのように一度に 1 つずつ作成することは、大きな後退です。同時に、複数の IDE で作業するのも面倒です。

私の質問は 2 つの部分に分かれています。

  1. ClassWizard を VS 2005 または VS 2008 で動作させる方法はありますか?

  2. 私のような古い C++ ハックに同様のレベルの生産性を提供する代替または代替 IDE の低下はありますか?

0 投票する
2 に答える
6024 参照

c++ - 基本クラスから派生した ATL COM クラスを作成する方法は?

"ATL シンプル オブジェクト" ウィザードでは、新しいクラスが既存のコクラスとそのインターフェイスから派生することを指定する方法が提供されません。Visual Studio 2008 で、既存のクラスから派生した新しい ATL COM クラスを作成するにはどうすればよいですか (つまり、 Baseimplementsであり、その implementsから派生した新しいクラスIBaseを作成したいのですが、ここで、は from から派生しています)。DerivedBaseIDerivedIDerivedIBase

更新: 簡単に聞こえますが、ウィザードで生成された ATL クラスには、最大 6 つの基本クラス、COM マップ、接続ポイント マップがあります。これらの基本クラスとマップのどれを派生クラスで繰り返す必要がありますか? マップが派生クラスで繰り返される場合、基本クラス マップのコンテンツを含める必要がありますか、それとも追加のアイテムだけを含める必要がありますか? 基本クラスの順序は重要ですか? FinalConstruct()とはどうFinalRelease()ですか?派生クラスで繰り返す必要がDECLARE_PROTECT_FINAL_CONSTRUCTありますか?DECLARE_REGISTRY_RESOURCEID

すべてのボイラープレートを除いて空のサンプル基本クラスを次に示します。では、派生クラスはどのように見えるでしょうか?

0 投票する
2 に答える
1900 参照

mfc - CPropertySheet ウィザード MFC アプリケーションで既定のボタンを削除するには?

こんにちは..MFC アプリケーションで CPropertySheet と CpropertyPage を使用してセットアップ ウィザードを設計しています.設計は完了しましたが、問題は..通常の CProperty シートには、4 つの既定のボタン "BACK NEXT FINISH HELP" があります.. .しかし、[次へ]ボタンと[終了]ボタンのみが必要です...次のコードを使用してそれを実行しましたが、実行時エラーが発生しました..「スタックオーバーフロー」このコードを正確にどこに含めるかわかりません(つまりどのクラス..この機能をどのように利用するか..誰でも私を助けることができます..

BOOL CExtractorFinalUIDlg::OnSetActive() { CSelfExtractor setButtons = (CSelfExtractor )GetParent(); setButtons->SetWizardButtons(PSWIZB_NEXT | PSWIZB_FINISH | PSWIZB_CANCEL);

CExtractorFinalUIDlg::OnSetActive(); を返します。

}

0 投票する
2 に答える
2729 参照

visual-studio - 新しいコード要素を返すことができませんでした。構文エラーの可能性があります

グループボックスの下に2つのラジオボタンがあり、最初の1つのグループをtrueにしました。しかし、ラジオボタン変数を追加すると、「新しいコード要素を返すことができませんでした。構文エラーの可能性があります」というメッセージが表示されます。理由は何でしょうか。

0 投票する
1 に答える
274 参照

c++ - VS2010 での ClassWizard のカスタマイズ

VS2010 SP1 の登場により、私は再び VS2008 から新しいバージョンへの移行を検討しています。これの主な理由は、VC6 の長年のユーザーとして、ClassWizard が優れた生産性向上ツールであり、待望の復帰を歓迎していることです。ただし、ClassWizard は問題なく動作しますが、カスタム DDX ルーチンの作成に必要な .CLW ファイルに相当するものが見つかりません。たとえば、VC6 で長さの入力を定期的に処理する場合、CLW ファイルに次の行があります。

これにより、ClassWizard から長さ変数を追加できます。これが VS2010 でまだサポートされているのか、それとも VC6 に追いつくのにあと 1 年かかるのでしょうか?

0 投票する
1 に答える
376 参照

c++ - VS2010でクラスをClassWizardにインポートできますか?

VS2010で、クラスを.hおよび.cppファイルからClassWizardにインポートして、ClassWizardを使用してクラスを操作できるようにする方法はありますか(変数の追加など)。プロジェクトに持ち込んだファイルのかなりの数VS2008から移行したとき、ClassWizardで使用できないようです。VS6に戻ると、CLWファイルを手動で編集することでこれを行うことができましたが、これは使用できなくなりました。関連する質問を参照してください

この情報を格納するファイルはMyProjectName.sdfだと思います。これは、エクスプローラーによってSQL Server Compact Editionデータベースファイルとしてリストされていますが、編集できるツールがあるかどうかはわかりません。

0 投票する
1 に答える
808 参照

visual-studio - Visual Studio ClassWizard エラー

MSVC 2013 のクラスで ClassWizard スタートアップ エラーが発生します。

次に開きますが、ダイアログ コントロールとメッセージ ハンドラが認識されません。

ダイアログは、すべての標準 MFC コントロールを使用します。

resource.h 内のすべてのリソース ID 値は一意です。

//{{AFX_DATA、 などのマークを{{AFX_MSG適宜付けてみました。無効。

同じダイアログ ID の新しいクラスを生成しようとしました。ClassWizard は、新しいクラスを開始するときに同じメッセージを表示します。

プロジェクトまたはリソース ファイルに気に入らないものがあるようです。

何か案は?このことを診断する方法はありますか?ありがとうございました。

0 投票する
0 に答える
206 参照

c++ - VS2013 のクラス ウィザードが OCX コントロールの属性メソッドを作成しない

OCX コントロールを使用する VC++6.0 で構築されたレガシー アプリケーションがあります。VS2013 でビルドするようにアプリケーションをアップグレードしました。最初は正常にビルドして実行できましたが、Class Wizard を使用して ocx.h および ocx.cpp ファイルを再生成しようとしたときに、

  1. ソリューション エクスプローラーでプロジェクトを右クリック
  2. ActiveX コントロールから Add:Class:MFCClass を選択する
  3. [追加]ボタン
  4. 登録済みコントロールのリストから OCX を選択
  5. コピーするインターフェイスを選択
  6. [完了]ボタン

生成された h および cpp 出力ファイルにすべての属性メソッドがありません

また、レジストリを使用する代わりに Class Wizard に OCX ファイルを直接指定しようとしましたが、結果は同じでした。ocx.h および ocx.cpp ファイルを手動で編集して欠落している属性メソッドを追加しましたが、Class Wizard がそれらを生成しない理由がわかりません。VC++6.0 バージョンに戻って、ファイルが正しく生成されるかどうかを確認しようと考えましたが、同じメニュー オプションが利用できないため、6.0 を使用して ocx.h および ocx.cpp ファイルを生成する方法がわかりません。

Hans のコメントに応えて 2018 年 3 月 5 日を追加

元の OCX プロジェクトで欠落している属性の 1 つを次に示します。

=====FILE:SigPlusCtl.h=========

=====ファイル:SigPlusCtl.cpp=========

=====ファイル:SigPlusImage.cpp====

そして、この不足している属性を使用するために、コンテナ プロジェクトで生成された .h および .cpp ファイルに追加する必要があったものを次に示します。VS2013 で再生成する前に、コンテナー アプリの元の OCX .h および .cpp ファイルからこのコードをコピーしました。VC++6.0 を使用してこれらのファイルを再生成できなかったため (以下の最初のコメントを参照)、このコピーされたコードがもともと VC++6.0 ウィザードによって作成されたものなのか、元のプログラマーがこれらのヘッダー ファイルも編集したのかはわかりません。

========FILE:sigplus================

========ファイル:sigplus.cpp=============

クラスウィザードにとって重要かどうかはわかりませんが、メソッドの場所は、OCX コントロールのメソッドの実装がすべて SigPlusCtl.cpp ファイルに配置されるのではなく、複数の .cpp ファイルに分散されているという点で、やや型破りです。

3-20-18 追加

Hans による 3-20 のコメントに続いて、Visual Studio 2013 で ocx ファイルを開いて TYPELIB を調べようとしました。しかし、TYPELIB フォルダーを展開すると、HEX ダンプしか表示されません。 ここに画像の説明を入力

OLE/COM Object Viewerを使用して OCX TypeLib インターフェイスを見ると、[プロパティ] の下に表示されていないプロパティが表示されますが、Get および Set メソッドの明示的な宣言が表示されません。たとえば、プロパティImageFileFormatはありますが、 GetImageFileFormatSetImageFileFormatはありません。OCX コントロールのソースには、これらの Get/Set メソッドの明示的な定義があります。

メソッドの下の Get メソッドと Set メソッドの明示的なリストが OLE Viewer に表示されることを期待する必要がありますか?

18/3/20 17:00PDT 追加

@HansPassart がコメントで言及した#importを調べました。この Microsoft 固有のディレクティブは、クラス ウィザードの使用に代わるものと思われます。クラス ウィザードで生成されたファイル sigplus.h および sigplus.cpp をプロジェクトから削除し、追加しました。

メインヘッダーファイルに。#importディレクティブをコンパイルすると、sigplus.TLH および sigplus.TLI (ヘッダーと実装) ファイルが生成され、TLI ファイルを明示的にインクルードする sigplus.TLH がインクルードされます。#import をコンパイルすると、これら 2 つのファイルが生成され、生成された「Rel​​ease/sigplus.tlh」がインクルードされます。これらの生成されたファイルには不足している Get/Set メソッドが含まれていますが、コンパイルされません。TLH ファイルは、OCX クラス _DSigPlus に別の名前を使用し、名前空間内に配置します。しかし、これらの違いを考慮した後でも、TLH ファイル内のクラス宣言は、Class Wizard が CWnd を使用する親クラスとして IDispatch を使用し、コンパイル時に、IDispatch の親である IUnknown からの次の未解決の純粋仮想メソッドがあります。

0 投票する
0 に答える
501 参照

mfc - VS 2019 の MFC プロジェクトで Classwizard を表示できなくなりました

私のプロジェクトは何年も前に始まりました。現在、VS 2019 を使用しています。

(新しい VS ウィザードを使用するため) 右クリックしてイベント ハンドラーを追加できますが、クラスを右クリックして汎用変数を追加することもできます (新しい VS ウィザードを使用するため)。クラス ウィザードを表示できなくなりました。 :

クラスウィザード 1

プロジェクトのクリーニングを試み、フォルダーの名前を変更しようとしました。

表示を拒否し、次のメッセージを表示します。

値が期待される範囲内にありません。

表示されるその他のエラー メッセージは次のとおりです。

クラスウィザード2

パラメータが正しくありません。(HRESULT からの例外: 0x80070075 (E_INVALIDARG))

これは、ダイアログ リソースの新しいコントロールに新しい変数を追加するのが非常に難しいことを意味します。

この問題を調査しましたが、2019 MFC プロジェクトで機能する解決策が見つかりません。

アップデート

Visual Studio インストーラー修復を使用してみましたが、問題は解決しませんでした。