- 締切済み
builder5とvisual C++の違い
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 山本 隆(@tyamamoto)
- ベストアンサー率60% (12/20)
C++BuilderのByte型は次のように定義されています。 typedef unsigned char Byte; // 0..255 Byteをunsigned charに書き換えれば、Visual C++でも動作するでしょう。
- yama5140
- ベストアンサー率54% (136/250)
>visual C++では、どう書けばいいのでしょうか? Byte → BYTE として試して下さい。 builder5 でも↓このまま使えます。 #include <windows.h> struct{ BYTE r; BYTE g; BYTE b; }rgb[10][10],rgb2[10][10];
- kmee
- ベストアンサー率55% (1857/3366)
Byteという型は、C++標準のものではないので、標準のものを使って書き換えるなり、typedefで別名を付けるなりすればいいでしょう。 Builderのものは調べてませんが、大抵は Byte→符号無し8bit→unsigned charになります。
関連するQ&A
- visual C++でのグローバル変数の宣言
visual C++でマスの色を読みとって、いろいろな処理を行うプログラムを作成中なのですが、グローバル変数として以下の宣言をしたときに、以下のエラーが出ます。 struct{ int r; int g; int b; }rgb[10][10]; //マス数は10×10までとする error C3183: マネージ型 'SOMsample::Form1' の中で名前のないクラス、構造体またはユニオンを定義することはできません。 これをbuilder5で書き込んだときはエラーが出なかったのですが、visual C++ではどう書けばいいのでしょうか? 回答よろしくお願いします。
- 締切済み
- C・C++・C#
- C#で構造体の配列を持った構造体を使いたいのですが
C#で構造体の配列を持った構造体を使いたいのですが Cならば struct xyz { struct abc _abc[32]; int index; }; struct abc { int a; int b; int c; }; struct xyz _xyz[8]; xyz[0]._abc[3].b = 1; のような使い方で という感じで やっていた事を C#で 同じような事をやろうとしても うまくいきません うまくやる方法をどなたかご存知ないでしょうか Visual Studio 2005行った場合 コンパイルで 構文エラーです。不適切な配列の宣言子です。マネージ配列を宣言するには、次元指定子を変数の識別子の前に指定します。固定サイズ バッファ フィールドを宣言するには、フィールド型の前に fixed キーワードを使用します となり fixed をつけると 固定サイズ バッファの型は次のうちの 1 つでなければなりません: bool、byte、short、int、long、char、sbyte、ushort、uint、ulong、float または double となってしまいます
- ベストアンサー
- C・C++・C#
- Visual C++でのデバッグ
配列で宣言した構造体のオブジェクト中のひとつのメンバーをデバッグウィンドウのウォッチで見れないでしょうか。 たとえば struct test { int a; double b; }sample[10]; と宣言したとして、sample[0].a~sample[9].aのみをウォッチで見たいです。 実際にやってみたのですが、ウォッチにsampleを入れてしまうとaも表示されてしまいます。
- ベストアンサー
- C・C++・C#
- .NET C++で、構造体の配列をnewで作成しようとするとerror C2440のエラーとなってしまいます
Visual studio2003 .NET C++で、構造体の配列を作成し、 改めて構造体の配列をサイズ指定して作成しようとすると、error C2440が出てしまいます。 ポインターで宣言したつもりはないのですが、ポインターから配列に変換できないといった項目のエラーなので、 なぜこのようなエラーが出るのかわからずにおります。 typedef __nogc struct TEST { // 省略 }; TEST struct_test __nogc[]; int int_num = 10; struct_test = new TEST __nogc[int_num]; // error C2440: '=' : 'TEST *' から 'TEST []' に変換できません。 ご指摘等ありましたらご回答いただけますと助かります。 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- c++でのクラス設計について
今,c++で色を表すクラスを作っています. 色とはいっても,RGBやXYZなどいろいろな色がありますよね?もし,「各成分の合計を求める」なんて言う関数を作ろうと考えるとすると(必要ないですが^^…)RGBに対しても,XYZに対しても,というように2つ以上作るのは面倒です.そこで,n成分を持つ色のクラスというものを作って,そのクラスを継承して,RGB, XYZなどを表せないかと考えました. つまり… class color3{ double data[3]; ~~~~~~ }; class rgb : public color3{ ~~~~~~ }; class xyz : public color3{ ~~~~~~ }; (実際color3はtemplateクラスで,double data[3]もポインタを使って要素数を変更できるようにしています.) もちろんこの方法で正常に動いていますが….これではrgbクラスの変数cを宣言して,成分を参照するときに,赤色ならc.data[0],緑色ならc.data[1]というように,data[~]で参照しなければなりません.しかし,これでは見にくいと思っています><.できるなら赤色ならc.r, 緑色ならc.gというように参照したいです.もちろん派生クラスの中にdouble r, g, b; と宣言すればいいのですが… .そうしてしまうと,一番最初の目的が達成できません.ポインタを使ったり,メンバの値を取得する関数(getR(), getX()みたいな…)を作れば解決できますが,この方法を使うと*(c.r), c.r()のような参照をしなければならず,「c.r」というようなきれいな参照はできません.贅沢を言っているようではありますが.c.rと表せるようなクラスの設計の仕方はあるでしょうか? 現在ぼんやりと考えているのは class color3{ double data[3]; ~~~~~~~ }: class rgb : public color3{ double &r = data[0]; double &g = data[1]; double &b = data[2]; ~~~~~~ }; class xyz : public class3{ ~~~~~~ }; のように,参照変数を使えないか,と思っています.もちろん上の方法ではコンパイルエラー となりましたが>< 質問が長くなってしまいすいません>< よろしくお願いします. 必要ないかもしれませんが参考までに… 【環 境】MaxOS 10.6 【言 語】c++ 【開発環境】Xcode 【 レベル 】プログラミング歴6年 c歴4年 c++歴1年の大学1年です
- ベストアンサー
- C・C++・C#
- ピクセルの値から画像
画像をRGB値の値で表す1次元配列を作ったのですが、それを今度は逆のことをしたいのですがよくわかりません。アドバイスお願いします。画像は白黒でR=G=Bです。
- 締切済み
- C・C++・C#
- visual c++ のグローバル変数宣言について
visual c++で、 例えば下記のようにグローバル変数宣言するが 下記プログラムの「FileMei1[0][n1] = 0;」のところでブレークをかけてプログラムを走らせると、ウォッチウィンドウで「FileMei1エラー: 識別子 'FileMei1' はスコープ外です」とでてきます。 グローバル変数宣言のやり方間違っているのでしょうか? namespace TestCpp { extern char FileMei1[300][100]={ 0 }; public void aa{ for(n1=0; n1 < 100 ; n1++) { FileMei1[0][n1] = 0; } }
- 締切済み
- C・C++・C#
- C++Builder6 での複素数計算
C++builder6 で複素数計算が出来なくて困っています、 UNIT1.CPPのヘッダー部分に #include <vcl.h> #pragma hdrstop #include <iostream> #include <complex.h> #include "Unit1.h" //----------------------------- #pragma package(smart_init) #pragma resource "*.dfm" を書いて イベントハンドラ部分に変数の宣言 complex<double> z; として緑色三角形の実行ボタンをクリックすると 「未定義のシンボル complex」 と言うエラーが発生します、 この解決方法を教えて頂ければ幸いです、宜しくお願いします。 (なお C++builder5 では何の問題もなく複素数計算のソフトが出来ていました)
- ベストアンサー
- C・C++・C#
- C++ Builderで文字列をバイトにする方法
C++ Builderでプログラミングをやっているのですが、 String memo1 = "あいうえお"; という文字列を unsigned char test_bin[1000]; バイトで宣言した配列に test_bin[0] = memo1の1バイト目; test_bin[0] = memo1の2バイト目; test_bin[0] = memo1の3バイト目; test_bin[0] = memo1の4バイト目; test_bin[0] = memo1の5バイト目; このように、文字列データのバイト数値を数値変数に代入させることはできますでしょうか? どうぞ、ご教授の程よろしくお願い致します。
- ベストアンサー
- C・C++・C#