問題タブ [turbo-c++]
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.
c++ - Borland x86 インライン アセンブラ。ラベルのアドレスを取得しますか?
Borland Turbo C++ をインライン アセンブラー コードで使用しているため、おそらく Turbo Assembler (TASM) スタイルのアセンブリ コードです。私は次のことをしたい:
そのため、SomeLabel のアドレスが EAX に配置されます。これは機能せず、コンパイラは次のように文句を言います: 未定義のシンボル 'SomeLabel'。
Microsoft Assembler (MASM) では、ドル記号 ($) が現在の場所のカウンターとして機能します。これは、私の目的に役立ちます。しかし、これも Borlands Assember では機能しないようです (式の構文エラー)。
更新: もう少し具体的に言うと、実行時ではなく、コンパイル/リンク中に定数として eax に移動するアドレスをコンパイラが生成する必要があるため、「mov eax, 0x00401234」のようにコンパイルされます。
誰でもこれを機能させる方法を提案できますか?
更新: Pax の質問 (コメントを参照) に応答するには、実行時に Windows ローダーによってベース アドレスが変更された場合でも、DLL/EXE PE イメージは Windows ローダーによって再配置され、ラベル アドレスは実行時に次のようにパッチされます。ローダーは再ベースのアドレスを使用するため、ラベル アドレスにコンパイル/リンク時の値を使用しても問題ありません。
よろしくお願いします。
compilation - Borland Dev Studio 2006 Turbo C++ Explorer のコンパイルの問題
みなさん、おはようございます
私は C++ の初心者で、Borland Turbo C++ Explorer の初心者です。このコンパイルエラーが発生しました。それを修正する方法についての手がかりはありますか?
最初のコードが発生するコードは次のとおりです。
別の情報源からのいくつかの提案:
コンパイラのエラー メッセージが示すように、コンパイル ユニットのスコープ内に ITransaction データ型の宣言が 2 つあります。ITransaction の定義は Microsoft の comsvcs.h に由来するようで、OleDB::ITransaction は Borland の ITransaction インターフェイスの実装です。したがって、次の 2 つのことを試すことができます。
- OleDB::ITransaction 定義を削除します (Turbo C++ はわかりませんが、oleDB を処理するコンポーネントが存在する可能性があります。これを削除してみてください。または、別の #include を使用して含まれている可能性があります。テキスト oledb:: を検索します。 ITransaction をインクルード ディレクトリに保存すると、関連するファイルが見つかると思いますが、インクルード パスを変更して、これ以上含まれないようにします)。
- CINTERFACE を定義すると、コンパイル エラーになるコードが含まれないため、CINTERFACE を定義してみてください。しかし、それは他の問題を引き起こす可能性があります...
他に提案はありますか?
よろしく、ブルース。
c++ - C++ の exit() 関数について
getche() 関数ではプログラムが正常に終了しないので、 exit(int status) 関数を試してみたいと思います。Turbo C++ プログラミング言語ではどのように機能しますか? 関連するヘルプ モジュールの説明を理解できず、より良い説明を探しています... たとえば、関数のパラメーターは何で構成されていますか? 前もって感謝します!
c++ - Turbo C ++でコマンドライン引数として整数を渡す方法
Turbo C++ のコマンド ラインから整数値を渡すことができません。私を助けてください。
windows - Turbo C++ および cc3270.dll でファイル アイコンを変更する方法
数日前に Borland の Turbo C++ を使い始めました。私は実際に2つの質問があります。
1.: ファイルのアイコンを変更するにはどうすればよいですか?? プログラム(コンソールアプリケーション)を作成すると、常にこの青いアイコン(建物など)が表示され、どこにも見つかりません。デフォルトの「なし」アイコンに変更する方法( in Dev-C++ がデフォルトです)。
2.: コンソール アプリケーションを作成し、仮想 PC で実行したい場合、CC3270.DLL が見つからないと表示されます。c:\windows\system32\ にコピーすると、完全に動作します。しかし、私はこの方法を避けたいです。私のアプリケーションがこのファイルを必要としないように、設定などを変更することは可能ですか? このdllを持たないコンピューターでプログラムを使用したい場合は、すべてのマシンでそこにコピーする必要があるため、気がかりです。
前もって感謝します!
カンピ
java - Turbo C/C++ コンパイラを使用して DLL を生成することは可能ですか?
Java クラス (JNI) から C 関数を呼び出すためにこれが必要であり、「Microsoft Visual C++ コンパイラ」を使用してこれを行うオプションがあることを知っています。(ここで説明します)
しかし、 TCまたはTCCを使用して同様のことができるかどうかを知りたいです。
「Microsoft Visual C++」のコピーを持っていません。また、「Microsoft Visual Studio」をインストールしなくてもcl.exeを使用できるかどうかわかりません。
c++ - C言語プログラムがウイルスとして検出された
このプログラムをvirus.cppとして保存しました。Turbo Cコンパイラを使用してこのプログラムをコンパイルし、Turbo C(Ctrl + F9)から実行しています。
Windows 7を使用していて、AviraAntiVirウイルスシステムをインストールしました。
上記のプログラムを実行しようとすると、ワーム(DOS / Candy)が作成されます。プログラムに問題はないと思います。
今ここに何か特別なものがあります。以下の違いで同じプログラムを実行してください。ここでの唯一の違いは、次の間のスペース\n
です。
違いは\nとスペースだけです。私の質問は、なぜ私の単純なプログラムがウイルスとして検出されるのかということです。
これが別のコードサンプルです。今回はC++用です。
このプログラムを実行すると、「ウイルス警告」が表示されます。ウイルスではありません。さて、悲劇はあなたがデストラクタを取り除くときです、それはそれをウイルスとして検出しません。
スクリーンショットと同様の質問は次のとおりです。
問題は、どのように、そしてなぜですか?
c - 長整数の問題
私は C の初心者で、Turbo C++ コンパイラ (16 ビット) を使用しています。
私が書いているソフトウェアでは、最大の答えは約 32000 です。それより大きな数が必要な場合は、 を使用しますlong int
。
次のプログラムを実行すると:
次に、関数の定数値が長いというエラーが発生しますmain()
。
32000 を超える回答を得て、このエラーを取り除くにはどうすればよいですか? また、%d を %ld に変更し、符号なし整数を使用する場合は 40000L bt を使用します。また、40000 で 'l' を使用する必要があります //??
c++ - ステガノグラフィー用の bmp ファイルの読み取り
C++(Turbo) で bmp ファイルを読み込もうとしています。しかし、バイナリストリームを印刷できません。
txtファイルをエンコードして復号化したい。これどうやってするの。bmp ファイルのヘッダーは 54 バイトであると読みました。しかし、bmpファイルにtxtファイルをどこにどのように追加する必要がありますか。?
私はTurbo C ++しか知らないので、同じトピックに関連する解決策や提案を提供していただければ助かります。
バイナリモードでtxtファイルを渡すと、このコードは正常に実行されます
編集 :
fr.get(c) で文字パラメーターを渡していたときに、テキストに対して正常に機能していたコンソールでバイナリ データを表示できません。
compiler-construction - xpを介してturbocを使用できません。なぜ?解決?
WindowsXでTurboC++コンパイラ(dosバージョン)を直接開くのに問題があります。WindowsGUIからTurboC ++アイコンをクリックすると、1秒間開き(空白のdos画面)、シャットダウンします。したがって、コマンドラインからアクセスする必要があります。
このようにしてTurboC++が開き、プログラミングなどすべてを行うことができます。
なぜ常にtc.exe
コマンドラインから始めなければならないのですか?Windows XPから起動できないのはなぜですか?
また、tc.exe
コマンドラインから起動した後、グラフィックプログラムを実行できません。
事前定義された関数を使用して円を作成するための簡単なコードを記述します。コンパイルして実行すると、プログラムtc.exe
が終了し、コマンドプロンプトに戻ります。
なぜこれが起こるのですか?解決策はありますか?
また、DosBoxを使用してTurboC++を実行してみました。グラフィックプログラムの実行時に閉じます。
ps:この問題は私と私の友人だけに発生しました.....私たちの大学のすべてのPCにはWindows XPまたはVistaがインストールされており、問題はありません。initgraph();を使用しています。グラフィックドライバを初期化するための関数(自動検出を使用)およびグラフィックモード。iはbgiファイルに適切なアドレスを指定しました。フォルダーには、必要なファイル(EGAVGA.bgi)が含まれています。このプログラムは私たちの大学でうまく機能します。これは私のグラフィックカード(nvidia 9400 1gb)と関係がありますか?