プロが教える店舗&オフィスのセキュリティ対策術

増やしたいのですが方法を教えてください
どのオプションをどのように設定すればいいのでしょうか?

A 回答 (4件)

-lS:16進でサイズ指定



bcc32 -lS:400000 main.c

この回答への補足

ありがとうございます
コンパイルリンクは正常に終わり実行してみると
「このプログラムは不正な処理を行ったので強制的に終了します。」
というウォーニングボックスがでます
何が原因ででしょうか?

具体的には
ファイル「win」にメモ帳で

-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"
-L"c:\Borland\Bcc55\lib\Psdk"
-lS:400000
-W
-WM
-VM

を書きこみmain.cpp,main.h,main.rcを作成し

bcc32 +win c:\main shlwapi.lib
brc32 c:\main
c:\main.exe

を順に実行しています
ちなみに
-lS:200000
でもやってみました

補足日時:2004/11/04 05:13
    • good
    • 0

CreateWindowがうまくいってないのでは?


hWmainがNULLになってないか一度チェックしてみてはどうでしょう?

この回答への補足

ありがとうございます
クリエイト部分も書くと

hWmain=CreateWindow
(検査結果.exe,"検査結果",WS_OVERLAPPEDWINDOW,0,0,i*3/10,j/4,NULL,NULL,hInst,NULL);
SetWindowText(hWmain,"before");//ここまではOK
ShowWindow(hWmain,SW_SHOWMAXIMIZED);
SetWindowText(hWmain,"after");//これも含めここから先はエラーのため実行されず
UpdateWindow(hWmain);
while(GetMessage(&ms,NULL,NULL,NULL))
{
 TranslateMessage(&ms);
 DispatchMessage(&ms);
}
return (ms.wParam);

タイトルにbeforeがでますからhWmainは正常のはずです

if(hWmain==NULL)
SetWindowText(hWmain,"out");
else
SetWindowText(hWmain,"ok");

でも最初の部分に配置してやってみましたがokが表示されました

補足日時:2004/11/05 07:44
    • good
    • 0

>このオプションを設定するとエラーがでて設定しないとエラーがでないのですが設定の仕方が悪いという事はないのでしょうか?


-Nオプションで、スタックオーバーフローのメッセージが表示されるというなら、スタックが足りません。
「不正な処理」のメッセージがでるなら、
やはり、このオプションに関係なく
ポインタ関係の不正使用だと思います。
ポインタの不正使用でのメッセージの表示タイミングは、いつ出るか一概に言えません。
少なくともこのオプションの設定のせいではありません。

プログラムを拝見することはできますか?

この回答への補足

ありがとうございます

プログラムは長すぎるので補足することができません
そこでどこでエラーが発生しているかを調べてみました

WinMainの

hWmain=CreateWindow(
・・・・
//ここまではOK
ShowWindow(hWmain,SW_SHOWMAXIMIZED);
//ここから先はエラーのため実行されず
UpdateWindow(hWmain);
while(GetMessage(&ms,NULL,NULL,NULL))
{
 TranslateMessage(&ms);
 DispatchMessage(&ms);
}
return (ms.wParam);


ShowWindow(hWmain,SW_SHOWMAXIMIZED);
でエラーになっているようです

補足日時:2004/11/05 01:04
    • good
    • 0

「このプログラムは不正な処理を行ったので強制的に終了します。


どんなプログラムか見てないので一概には言えませんが、
ほとんどポインタの不正使用だと思います。

スタックがオバーフローしているかどうかは、
コンパイルオプション
-N
でチェックさせることができます。
プログラムを実行中にスタックがオーバーフローした場合、そのことを報告するメッセージが表示されます。

この回答への補足

ありがとうございます
このオプションを設定するとエラーがでて設定しないとエラーがでないのですが設定の仕方が悪いという事はないのでしょうか?

補足日時:2004/11/04 12:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!