JAVAはSUNがライセンスを持ってますよね、んじゃC&C++のライセンスはどこが持ってるんですか?

A 回答 (1件)

広く公開しているんだと思いますが。


Javaは結局そうはなりませんでしたが、C/C++は
ANSI/ISO/JISで公式規格として定義されていますよね。
ライセンスがあったら勝手にコンパイラ作れませんもんねぇ(^^;

ちなみにCを作った人はBrian KernighanとDennis Ritchie
C++を作った人はBjane Stroustrup博士
両方AT&Tの研究所にいる人ですが。

自信ないです。
    • good
    • 0

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC++ の typedef の 使い方の質問

C++のtypedefの使い方の質問ですが、typedefは、別名の定義として、知られていますが。
以下のソースの意味がよく読み取れないです。windows プログラミングとC++
が分かるかたがいれば、以下のソースの意味を教えていただきたいです。

よろしくお願いします。
typedef BOOL (WINAPI *AddAccessAllowedAceFn)(
PACL pAcl,
DWORD dwAceRevision,
DWORD AceFlags,
DWORD AccessMask,
PSID pSid
);

Aベストアンサー

関数ポインタの別名定義です。
「関数ポインタ typedef」をキーワードにWeb検索してみてください。
丁寧に解説されているサイトが見つかるでしょう。

QC&C++のプログラミングの質問なんですが(2回目)、、、、

10進整数dをn進数に変換する関数がわかりません。
ただしnが10より大きい場合にも対応でき、
インターフェイスは
char* d2q(int d, int n)
でおねがいします

Aベストアンサー

ということで、こんな感じ

#include<string.h> // require of memset() strcpy()
#include<stdio.h> // require of sprintf() printf()


#define RETBUFMAX 34// 戻り値バッファサイズ

char* d2q(int d, int n)
{
static char retbuf[RETBUFMAX]; // 戻り値バッファ
char numch[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 数字+英数字
char tmp[RETBUFMAX]; //テンポラリバッファ
int res; // 剰余値
int val; // 入力値・商

// 2進数から32進数まで以外はエラー
if(n < 2 || n > sizeof(numch))
return NULL;

val = d;
// バッファクリア
memset(retbuf, 0, sizeof(retbuf));

// 下桁から計算るーぷ
for(;val > 0;) {
res = val % n;
val = val / n;
sprintf(tmp, "%c%s", numch[res], retbuf);
// デバッグ用printf("res=%d val=%d %s\n", res, val, tmp);
strcpy(retbuf, tmp);
}

// 返却
return retbuf;
}

英数字使用で32進数まで対応。どうぞお好きに

ということで、こんな感じ

#include<string.h> // require of memset() strcpy()
#include<stdio.h> // require of sprintf() printf()


#define RETBUFMAX 34// 戻り値バッファサイズ

char* d2q(int d, int n)
{
static char retbuf[RETBUFMAX]; // 戻り値バッファ
char numch[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 数字+英数字
char tmp[RETBUFMAX]; //テンポラリバッファ
int res; // 剰余値
int val; // 入力値・商

// 2進数から32進数まで以外はエラー
if(n < 2 ||...続きを読む

QC++.NET の String型の使い方

初めて質問いたします。
C++ .NET 2005 Express Beta版を入手し、Windows Formsのプログラミングを勉強してます。

TextBoxのTextに値を変数で指定したいのですがどうすれば良いのかわかりません。

  textBox1->Text = "Test";
とダイレクトに値を指定すればできるのですが、

  #include <string>
  using namespace std;
   (省略)
  string str = "Test";
  textBox1->Text = str;
は、エラーになってしまいます。

C++標準のstringクラスではなく、.NETはStringクラスがあるようですが、これの使い方がMSDN等で調べているのですが分かりません。
分かりやすいURLなどありましたら教えていただけませんか。

Aベストアンサー

textBox1->Text = new String(str.c_str());
でいけるんじゃないかなあ。
試してないのでなんですが、
C++のstringクラスからは、c_str()で、いわゆるNULL終端文字列へのポインタが得られて
.NETのStringクラスは、NULL終端文字列でのコンストラクタがありますから。

Q★C++(DirectX) vs Java(Java3D)★

公開頒布するゲームの作成を考えていますが,その前に・・・
手段としてJava+Java3Dで行う方法とC言語+DirectXでプログラムを行う方法があるようで・・・

一般に売られているコンピュータゲームにはDirectXを含むものが多いため,後者の組み合わせでゲームを作っているのかなと勝手に思っていますが,実際のところどうなんでしょうか?
改ざんを防ぐためにはDirectXを使ったほうが良い等があるのでしょうか?

ちなみに,JavaもC言語も学習していますし,作るゲームのジャンル(RPG,STG)などは考えず,さまざまなゲーム作成をしたいと考えています.

Aベストアンサー

 こんにちは。

 Javaは使用した事が無いので、速度的に如何かは分からないのですが、此の言語では「速度が遅すぎて遊びものにならない」と言う致命的な事実が発覚した日には泣くに泣けないと思うので、C/C++とDirectXの組み合わせを選択しておくのが最も無難な気がします。

 私が専門学生当時、卒業製作でVisualC++4.0とX68000アセンブラのどちらかを選択し、ゲームを作成しました。私の班はC/C++の難易度に耐え兼ねて、X68000アセンブラの方へ逃げましたが、VisualC++4.0を選択した殆どの班はDIBSECTION等による描写でした。その当時DirectXの情報や資料が殆ど無かった為です。

 しかし、其れは過去の話で、今現在ではDirectX関連の書籍など、少し大きめの本屋に行けば、数え切れない程陳列されています。その殆どがVisualC++とワンセットで書かれているものです。

 単純に検索しても一目瞭然? です。勿論の中には使用する事と直接関係無いものも含まれます。
 google検索エンジン

 DirectX 30,900,000件
 Java3D 976,000件

 以上の事から情報の流通量だけでも、明らかにDirectXの方が上だと思います。ただ、ネットの情報は便利ですが、話が飛び飛びである事も多いので、理解を深めて使う為には、使用方法や要点が整理された書籍も必要になると思います。

 私は海外製のPCゲームでFPSを好んでいますが、確証は無いものの、最早あの様な代物はC/C++でもない限り、動かないかなと。

 体験談で言えば昔、擬似3Dのバイクレースゲーム(懐かしのハングオン見たいな代物)をVisualBasic5.0とDirectXで作成していました。
 「右・左」へハンドル操作して曲がる計算処理のどちらを先に書いたかによって、右の効きが良くなったり、左の効きが悪くなったりと、散々でした。
 堪り兼ねて、C/C++に移行し其処でやり直しました。スクロールの精度を2倍、障害物の表示数を10倍以上に増やしても、VisualBasic5.0より遥かに早かったです。

 こんにちは。

 Javaは使用した事が無いので、速度的に如何かは分からないのですが、此の言語では「速度が遅すぎて遊びものにならない」と言う致命的な事実が発覚した日には泣くに泣けないと思うので、C/C++とDirectXの組み合わせを選択しておくのが最も無難な気がします。

 私が専門学生当時、卒業製作でVisualC++4.0とX68000アセンブラのどちらかを選択し、ゲームを作成しました。私の班はC/C++の難易度に耐え兼ねて、X68000アセンブラの方へ逃げましたが、VisualC++4.0を選択した殆どの班はDIBSECTION...続きを読む

Qc++ stringの使い方

お世話になります。
最近c++始めました。
stringの使い方がよくわかりません。
以下のstringの使い方が問題ないか確認頂けますか。
スマホで書くため、文法が合ってないと思いますが、stringの使い方だけ確認させてください。
引数にstringで囲って渡すのは実装として普通行いますか。
やってはいけないですか。
是非ご教示ください。

#define STR1 "mojiretu"
main()
if(check(string(STR1)))



bool check(string str)

Aベストアンサー

間違っちゃいないけど、直に const string でかまわんのでは?

#include <iostream>
#include <string>

const std::string STR1 = "mojiretu";

bool even_length(const std::string& str) {
return str.length() % 2 == 0;
}

int main() {
if ( even_length(STR1) ) {
std::cout << STR1 << " : even\n";
} else {
std::cout << STR1 << " : odd\n";
}
}

QC&C++からC#のexeを呼ぶ方法

いつもお世話になっております。

環境
Windows VISTA SP1
Visual Studio 2008

疑問
C(C++)からC#で作られたexeを呼ぶ方法がわかりません。
ret = CreateProcess(NULL,Common_Data->exename,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,
NULL, NULL, &si, &pi);

の様にCreateProcessではexeを呼べません。
(Common_Data->exenameにはGetCurrentDirectory使って
絶対パス指定してます)

おそらくC#でつくったプロジェクトの設定を変えてビルド
する必要があると推測していますが
どうすればいいのかわからないです。

以上 よろしくお願いいたします。

Aベストアンサー

「CreateProcess error 998 ERROR_NOACCESS」
でぐぐってみたところ、以下のような情報がありました。
http://fujiyoshisyouta.blog72.fc2.com/blog-entry-209.html

STARTUPINFO構造体(si)は、正しく初期化してますか?
特に、si.cbにSTARTUPINFO構造体のサイズが正しく入っていないと、
今回のようなエラーを返却する可能性が高いと思います。

http://itpro.nikkeibp.co.jp/article/COLUMN/20070126/259762/
を参考にしてください。

QVisial C++おけるπの使い方

自宅でCプログラミングの練習をするためVisial C++ 2008を使って
プログラムをしています。y<sin(πx)となった時の
割合などを計算するプログラムで                「M_PIが定義されていない識別子です」
とでてきます。所持している本を参考にしてもM_PI=πとして用いる
と書いてあり、math.hもインクルードしてるので原因が分からなくて
困ってます。Visial c++ではπの使い方には何か別の使い方がある
のでしょうか?よろしくお願いします。
*↓が実際に作ったプログラムです。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int main(void){
int i,n,count=0;
double x,y,r,error;

srand((unsigned)time(NULL)); /*乱数の初期化*/

printf("How many trials?");
scanf("&d",&n);

for(i=0;i<n;i++){
x=rand()/(RAND_MAX+1.0);
y=rand()/(RAND_MAX+1.0);

if(y<sin(M_PI*x)){
count++;
}
}

r=(double)count/n; /*キャスト演算子を使用*/
error=2/M_PI-r;

printf("Result is %f (Error: %f)\n",r,error);

return 0;
}

自宅でCプログラミングの練習をするためVisial C++ 2008を使って
プログラムをしています。y<sin(πx)となった時の
割合などを計算するプログラムで                「M_PIが定義されていない識別子です」
とでてきます。所持している本を参考にしてもM_PI=πとして用いる
と書いてあり、math.hもインクルードしてるので原因が分からなくて
困ってます。Visial c++ではπの使い方には何か別の使い方がある
のでしょうか?よろしくお願いします。
*↓が実際に作ったプログラムです。
#include ...続きを読む

Aベストアンサー

★アドバイス
・math.hをインクルードする前に『_USE_MATH_DEFINES』定数を define します。

#define _USE_MATH_DEFINES
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int main( void )
{
 :
 return 0;
}
必ず include する前に定義して下さい。

QC,C++,C++/CLIの構造体とクラス

C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが
privateかpublicかという違い「だけ」しか全くないのでしょうか?

クラスにおける
value class / ref class
という分類はC++/CLIのもので
これについては
value class の方は C言語の構造体に近いという事でいいでしょうか?

ref classの方は
ネイティブのC++のクラスを
マネージ用にしたようなもので

C++/CLIの構造体は
C++のそれと同じで
OKですか?

そしてそれらの構造体には、値型・参照型といった分類はないのでしょうか?

Aベストアンサー

> ということは、structも継承可、という事でしょうか?

structでも継承可能です。

> 継承のアクセス指定の方は
> クラスと構造体ではどうなるのでしょうか?

class A : Base {};



class A : private Base {};

と等価です。
一方、

struct A : Base {};



struct A : public Base {};

と等価です。

> そして「集成体」というのが初めて知ったのですが
> これはいわゆる、配列や・・・ある条件下でのクラス・・?
> なのでしょうか?

配列と以下の条件をすべて満たすクラスのことです。
・ユーザー定義のコンストラクタを持たない
・非公開または限定公開のメンバを持たない
・基底クラスを持たない
・仮想関数を持たない

ちなみにC言語の集成体は、配列と構造体の総称です(共用体は集成体ではありません)。

QcygwinでのC++の使い方

cygwinでC言語で書いたプログラムを実行したいのですがcygwinを起動すると
私の名前@なにやらアルファベット
が表示され次の行に

と表示されるんですがこの後にどんなことを書けば
#include<・・・>
としてC++のプログラムを書いていくことができるんですか?そもそもcygwinの使い方が根本的に違うんですかねえ?それともメモ帳かなんかにプログラムを書き保存しそれをcygwinで実行するんですかねえ?とりあえずプログラムを実行できるようにしてください。おねがいします。

Aベストアンサー

> それともメモ帳かなんかにプログラムを書き保存しそれをcygwinで実行するんですかねえ?

おおむねその通りです。

メモ帳でも何でもよいので、エディタでソースファイルを作成してください。作成したソースファイルは、とりあえずホームディレクトリに格納するとよいでしょう(C:\cygwinにCygwinをインストールしたのであれば、C:\cygwin\home\アカウント名がホームディレクトリになります)。

作成したソースファイルがfoo.cppだった場合、

g++ foo.cpp

とすれば、a.exeという実行ファイルが同じディレクトリにできるはずです。そこで、

./a

と入力すれば、a.exeを実行することができます。

QC/C++のプログラムをJavaバイトコードに変換

C/C++で書かれたプログラムをJavaバイトコードに変換するようなコンパイラはありませんか。

出来ればUNIX上で動くものがいいですが、Windowsでも構いません。

お願いします。

Aベストアンサー

http://depth-first.com/articles/2006/10/16/compiling-c-to-java-bytecode/
とかあるらしいですが。

まぁ参考までに。


人気Q&Aランキング

おすすめ情報