リリース時のCWnd::Createのエラー – プログラミング – Home

リリース時のCWnd::Createの...
 
通知
すべてクリア

リリース時のCWnd::Createのエラー


たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
Topic starter  

お世話になっています、たいちうです。

開発環境ではデバッグモード、リリースモードともに問題なく動いていたものが、
VCのインストールされていない環境で不具合が出てしまっています。

SDIのCViewは、メンバ変数にCMSFlexGridを持ち、
CView::OnInitialUpdate()関数で、Createしています。

テスト用のVCのインストールされていない環境では、Createで戻り値が0になり、
GetLastError()は6(オーバーフロー)、グリッドの表示はされません。

今、原因を調査中ですが、同様の経験をされた方、心当たり、アドバイスのある方、
いらっしゃいましたら、お聞かせください。

--以下、より詳細な状況です。--

【開発側】
WIN2000+SP3 VC6.0+SP5

【テスト側】
WIN2000+SP3 VCのインストールはなし

【アプリケーションの作成手順】
1.MFCウィザードでSDIを選択し、デフォルトで作成。
2.プロジェクトに追加で、MSFlexGridを追加。
3.CViewにメンバ変数CMSFlexGrid m_gridを追加。
4.CView::OnInitialUpdate()で、
m_grid.Create(", WS_CHILD | WS_VISIBLE, r, this, 1);

【実行結果】
・開発側ではデバッグモード、リリースモードともにグリッドが表示される。
・テスト側でリリースモードのexeを実行すると、グリッドが表示されない。
 m_grid.Createの戻り値は0であり、GetLastErrorは6(オーバーフロー)。

【その他】
 CViewでなくCFormViewを使い、作成時にグリッドを貼り付けると
テスト側でも表示されます。
 ただ、実際に動かしたいアプリケーションでこの方法に変更するのは、
修正箇所が多いので、できればCViewで動的にCreateする方法のままで
解決したいです。


引用解決済
トピックタグ
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

関係あるかはわからんが、以下のようなマイクロソフトのサポート技術情報
があります。

[PRB] 動的に作成したコントロールでメッセージが受信されない
文章番号 156051


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
Topic starter  

ボコノン教徒様

回答有難うございます。
私のケースの場合には、CWnd::CreateからCreateControlを呼び出し、
それが失敗しているようなので、完全に同じ現象ではないようです。

ですが、ActiveXを動的に作成する手順が、どこか間違っているのだと
思いますので、一度基本から見直してみます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました