[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/01 23:10 / Filesize : 254 KB / Number-of Response : 923
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれC++Builder(超初心者用)その3



1 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 03:39:51 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、 
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 
C++Builder使いが優しくコメントを返しますが、 
お礼はC++Builderの布教と初心者の救済をお願いします。 

Borland Home Page   www.borland.co.jp/ 

<過去スレ> 
くだすれC++Builder(超初心者用) 
pc8.2ch.net/test/read.cgi/tech/1117225464/l50

くだすれC++Builder(超初心者用)その2
pc10.2ch.net/test/read.cgi/tech/1144308804/l50

<兄弟スレ> 
くだすれDelphi(超初心者用)その39
pc10.2ch.net/test/read.cgi/tech/1169386914/l50


855 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 00:35:28 ]
>>843
Win32スレで聞いているうちにバグの原因がわかったので、
AlphaBlend per Pixelのプログラムを貼っておきます。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap* bt = new Graphics::TBitmap;
BLENDFUNCTION blend = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA};
TImage* ti = Image1;
RGBQUAD rgbq;

bt->Width = 256;
bt->Height = 256;
bt->PixelFormat = pf32bit;

int k = 0;
for (int i = 0; i < 255; i++, k++) {
int* sc = reinterpret_cast<int*>(bt->ScanLine[i]);
for (int j = 0; j < 255; j++) {
rgbq.rgbBlue = i;
rgbq.rgbGreen = j;
rgbq.rgbRed = 0;
rgbq.rgbReserved = k;
sc[j] = reinterpret_cast<int&>(rgbq);
}
}
BOOL RESULT =
::AlphaBlend(ti->Canvas->Handle, 0, 0, ti->Width, ti->Height,
bt->Canvas->Handle, 0, 0, bt->Width, bt->Height,
blend);
int err = GetLastError();
const wchar_t* str = WideString().sprintf(L"失敗!%d", err).c_bstr();

856 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 00:36:10 ]
if (RESULT == FALSE) {
Application->NormalizeTopMosts();
Application->MessageBox(str, L"AlphaBlend()でエラーが起きました", MB_OK);
Application->RestoreTopMosts();
}

delete bt;
}

857 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 00:42:59 ]
補足ですが、rgbq.rgbReserved must be zero.とMSDNには書いて
ありますが、これがまさにアルファ値そのものです。

ですからここにアルファ値をセットしてAlphaBlend()を呼び出せば、
期待通りの結果が得られます。

もちろんPixelFormatはpf32bitでなければなりません。

858 名前:843 mailto:sage [2008/11/30(日) 19:35:36 ]
>>855-857
丁寧にありがとうございます。
WideStringのところでひっかかったり、AlphaBlendが見つからなかったり(wingdi.hをインクルードするだけじゃダメなのかな?)していてまだ確認できていませんが、
いろいろ調べてやってみます。
ありがとうございました。

859 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 20:26:46 ]
>>858
BCB6だと、AlphaBlend()やTransparentBlt()使うときインポートライブラリ作らないといけないよ。

implib.exe msimg32.lib msimg32.dll でインポートライブラリを作り
tlib.exe lib\import32.lib + msimg32.lib 上記dll内のAPIをimport32.libに追加
これでいつでもAlphaBlend()が使えるはず。(BCB5以前ならネットからAlphaBlend()の関数定義もコピって来る)

>>855 は多分BCB2009にあわせてユニコード使ってるだけなので、BCB2007以前ならWideStringの代わりにAnsiString使えばいいよ。

860 名前:843 mailto:sage [2008/11/30(日) 21:16:16 ]
>>859
はい、BCB6を使用しています。
CBuilder6\Lib\Psdkに同名のファイルがあるので、パスが通っていれば良いのかと思っていました。
インポートライブラリを作成したところ、動作しました。
ありがとうございます。


ところで実行結果ですが、これでよろしいのでしょうか?
www3.uploda.org/uporg1823015.jpg.html

rgbq.rgbReserved = k;の部分で透明度が変わるはず・・・ですよね?
ti->Transparent = true;
ti->Canvas->Brush->Style = bsClear;
を入れてみてもダメでした。

861 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 22:14:10 ]
>>860
それで合っています。
どうしても疑問に思われるなら、rgbq.rgbReservedにいろんなアルファ値(0〜255)
を入れてやってみて下さい。

862 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 22:16:02 ]
例えばrgbq.rgbReserved = 100; にしたりすると
明らかに実行結果が変わります。

あとこういうグラデーション画面ではなくて、画像のbitmapを
使うとよくわかります。

863 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 22:21:09 ]
ti->Canvas->Brush->Color = clRed;
ti->Canvas->FillRect(Rect(0, 0, 255, 255));

こんな感じでImageコントロールを赤色で塗りつぶしてから
AlphaBlend()を掛けるとよく効果がわかります。
デフォルトでは白色ですからわかりにくいと思います。



864 名前:843 mailto:sage [2008/11/30(日) 22:38:05 ]
すいません、やっと理解できました。
ひとつのImageで二つの画像を重ね合わせるのですね。
これを二つのImageで行うことは不可能でしょうか?
下の画像に、上のImageを透明〜半透明色で塗った物を重ねたかったので。

Formをアルファブレンドした場合、全体を均一に同じ透明度で半透明になってしまいますよね?

865 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 22:46:24 ]
>>864
AlphaBlend()に与えるパラメータBLENFUNCTIONの最後のパラメータが
0だと、3つ目のパラメータが全体に与える透過度になります。

しかし今回はピクセル毎に透過度を指定する方法を敢えて選んでいます。
そちらのやり方を欲しておられるように読めたので。

その時は3番目のパラメータを255に、4番目のパラメータをAC_SRC_ALPHA
にして、rgbReservedにピクセル毎のアルファ値を入れる事になるのは説明
した通りです。

もし上のImageを透明〜半透明色で塗った物を合成したいのならば、二回
AlphaBlend()を呼び出さなければなりません。

866 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 22:48:04 ]
と言うのも、AlphaBlend()関数はソースのアルファ値しか参考にしない
ようになっているからです。MSDNをよく読んで見て下さい。

つまり上の画像を別の単色の画像か何かでアルファブレンド、次いで
その画像を下の画像とアルファブレンド、という二段階になります。

867 名前:843 mailto:sage [2008/12/01(月) 00:48:02 ]
上の画像に模様をつけて、それをさらにマウスで変形させようとするとすっごく大変なことになりそうですね。
ありがとうございましたー。

868 名前:デフォルトの名無しさん [2008/12/04(木) 17:03:59 ]
>>842
アドバイスありがとうございます!そして返事が遅れて本当にすいません;
これでやってみたのですが2列目の情報はMemo2に書き出すことができたのですが
4列目の情報を書き出そうとするとなぜかエラーがでてしまい。リストのインデックスが範囲を超えていますとでてしまいます。
原因がどうしてもわからず、困っています。
何かよい書き出し方法はもしくは格納方法はないでしょうか?
当方C++builder5を使用しています。

格納方法もしくは書き出し方法はEEEやRRRがないときは元のテキストのようにスペースとして一行あけて
書き出したいのですがどなたかよろしければアドバイスお願いします。


869 名前:843 mailto:sage [2008/12/05(金) 19:42:25 ]
たびたびすいません。
>>855>>863を加えたのですが
rgbq.rgbReserved = k; のkを0にすると、以下のようになりますよね。
www2.uploda.org/uporg1833847.jpg.html

透過度を0にすれば上にかかる色は消えますが、色の濃さは残るようで赤色にグラデーションがかかってしまいます。
濃さも消すことはできないのでしょうか?

870 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 20:02:48 ]
>>868
「4つめがEEEでもRRRでもなく空の時」って「Values->Strings[ 3 ]」が生成されないってことはないよな?
ブレイクポイント貼るかステップ実行するかして、どのリストからどんな風にはみ出してるのかデバッガ使って変数の値見ておいで。

871 名前:843 mailto:sage [2008/12/05(金) 22:13:17 ]
>>869ですが、自己解決しました

872 名前:デフォルトの名無しさん [2008/12/20(土) 20:13:43 ]
memo1 memo2
5.6    0
6.1    0
6.1    0
7.2 ←  0
10     1
9.0    1
10     1
4.0    1
7.5 ←  0
5.9    0
5.4    0
5.5    0
5.4 ←  0
10     1
10     1
4.5    1
5.2 ←  0
6.1    0
・     ・
・     ・
・     ・


このようにMemo1とMemo2に書き出されており0は正常値、1はエラー値でそれに対応する値が左の数字です。
1が出た場合前後の0の値から線形補間をしていきたいのですがどのように組んでいけばよいのでしょうか
上記の場合であれば(7.2と7.5の間で線形補間、5.4と5.2の間で線形補間)といった感じです。

873 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 20:16:46 ]
memo2 の値が 1 なら前後に 0 を検索して
0 があったらその値とそこまでの距離を使って
線形補完すればよろし。

ところで端に 1 があった場合はどうすんの?



874 名前:デフォルトの名無しさん [2008/12/20(土) 20:19:20 ]
AnsiString A,B;
int s,u;
u = 0;
for( int i = 0;i<Memo2->Lines->Count; i++ ){
if(Memo2->Lines->Strings[i] == '1'){
A = Memo2->Lines->Strings[i-1];
s = StrToInt(i);
u = StrToInt(i);
while(Memo2->Lines->Strings[u] == 0){
u++;
}
















}

875 名前:デフォルトの名無しさん [2008/12/20(土) 20:20:31 ]
B = Memo1->Lines->Strings[u];
for(int X = s; X< u+1; X++){
Memo1->Lines->Strings[X] = (B - A)/(u+1) * X + A;
Memo2->Lines->Strings[X] = 0;
}
u = 0;
}
このような感じで組んでみたのですが線形補間もうまくできておらず、
エラーが起こる場合もあります、よろしければアドバイスお願いします

876 名前:デフォルトの名無しさん [2008/12/20(土) 20:22:45 ]
>>873
返信ありがとうございます。
その場合は手動で0が端にくるようにしたいと思います。

877 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 20:23:24 ]
>>873
memo1 のデータを保存する必要がないなら、
memo1 のデータをあらかじめ補間した値ですげ替えておけば良い。
メモリに余裕があるなら、memo1 とは別にそういうテーブルを用意してもいい。
最初に一気に補間すると時間がかかるなら無理かもしれないが。

878 名前:デフォルトの名無しさん [2008/12/20(土) 20:26:01 ]
すいません、バージョンはc++builder5です。

879 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 20:34:28 ]
memo1 を書き換えたのでいいのね。

文字列を引き算したり
A に Memo2 の値を入れたり
整数を StrToInt したり
'0' じゃなくて 0 と比較してたり
X の範囲がおかしかったり
線形補間の分母がおかしかったり
おかしいところがありすぎて困っちゃう。

あと、今はまあいいんだけど、
最終的には補間後に i を補間の終了した地点にまで移動させた方が効率がいい。

880 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 20:35:26 ]
こういうことが起こるのも、変数名が 1 文字で分かりにくいからってのはあると思うぜ。
変数名は分かりやすい意味のある名前をつけよう。

881 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 21:39:53 ]
>>879 >>880
返信、アドバイスありがとうございます><
プログラム知識も浅く見様見真似で作ったのでこんな形になってしまいました・・
おかしい言われたところも自分ではどのようにして変えていけばよいのかわからず
困り果てています。
線形補間をしてmemo1に書き換えるにはどのようにプログラムを組めばよいでしょうか・・


882 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 22:08:35 ]
こっちもどうアドバイスしていいのかわからんレベルなんだが…。
とりあえず考え方として
Memoから値を文字列→数値に変換して配列とかvectorに格納する
数値に必要に応じて線形補完する
数値を文字列に変換してMemoに格納する
というように、やるべきことを自分が理解できるところまで分解してみてはいかが?
自分で理解できないものを作ることはできないんだし。

883 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 07:27:35 ]
Memoとかコントロールに入っている値を取りだしてどうこうしてまた
戻す操作は一般に遅いので>>882さんみたいにvectorに入れる
など考えた方がいいよ



884 名前:デフォルトの名無しさん [2008/12/21(日) 16:35:08 ]
vectorの格納とはいったいどういうものなんでしょうか?
今日調べていたのですが使い方もわからずじまいでした;
動作速度は遅くてもよいので具体的にこのように
memo1とmemo2を見比べてエラー値のあった部分は前後の0(正常値)から
線形補間していきmemo3のように線形補間された配列を書き出すプログラムを作りたいのですが
どのように書いていけばよいのでしょうか?
お手数ですがよろしくお願いします。
memo1 memo2 memo3
5.6    0    5.6
6.1    0    6.1
6.1    0    6.1
7.2 ←  0    7.2
10     1    7.26
9.0    1    7.32
10     1    7.38
4.0    1    7.44
7.5 ←  0    7.5
5.9    0    5.9
5.4    0    5.4
5.5    0    5.5
5.4 ←  0    5.4
10     1    5.35
10     1    5.3
4.5    1    5.25
5.2 ←  0    5.2
6.1    0    6.2
・     ・    ・
・     ・    ・




885 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:30:23 ]
身近に聞ける人はいないのん?
そりゃ答え教える事はできるけど・・・
今後もずっと聞き続けるのん? って話だしなあ。

886 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:32:06 ]
C++には型ってものがあってだな、ってところから説明が必要なのか?
Vectorがわからないなら配列でいいんで、せめてそのくらいは勉強しようね。
で、丸投げならそういうスレにいってもらうとして、そうでなければ、
あなたが同じことをやるとしたらどうやってそれを実現するのか、を手順として
分解していって、それをプログラムとしてコーディングする、という手順で。
とりあえず文字列は数値計算できないものなので、これを一旦doubleにして、
計算して、終わったら文字列に戻す…てなふうに。

887 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:54:17 ]
こういう単純な変換をするなら、
スクリプト言語使った方が楽だと思うんだがね。

888 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 21:58:26 ]
>>884
とりあえずアルゴリズム云々以前ぽいけど、BCBに因る問題だけは説明。

Memo2->Lines->Strings[ i ] は文字ではなく文字列なので
Memo2->Lines->Strings[ i ] == '1' や Memo2->Line->Strings[ i ] == 0 ではいけない。
比較するのなら Memo2->Line->Strings[ i ] == "1" とする。

Memo1のデータは数字に見えても実際は文字列なのでそのままでは計算できない。
なので一旦 ToDouble() メソッドを使って小数型にする。
(AnsiString::ToInt() や StrToInt() では整数になるので 5.4 とかは 5 に切り上げられてしまう)
※例として Memo1 の値を半分にして Memo3 に格納。
Memo3->lines->Add( Memo1->Lines->Strings[ i ].ToDouble() / 2.0 );

889 名前:デフォルトの名無しさん [2008/12/22(月) 16:18:17 ]
TDateTime と COleDateTime って、 double 値として見れば等価ですか?

890 名前:884 [2008/12/22(月) 18:25:02 ]
for( int i = 0;i<Memo2->Lines->Count; i++ ){
if(Memo2->Lines->Strings[i] == "1"){
c = i;

while(Memo2->Lines->Strings[c] == "0"){
c++;
}
Memo3->Lines->Add(c-i);
for(int x = i; x<c; x++){
Memo2->Lines->Strings[x] = 0;
}
c = 0;
}
}

線形補間をする上でエラー値の1がどれだけ続くのかを調べるために
上の方法でやってみたのですがうまくいかないのです。(常にcとiの値が同じで0になってしまう)

どこに問題があるのかアドバイスの方よろしくお願いします。

891 名前:デフォルトの名無しさん [2008/12/29(月) 18:17:29 ]
プログラム内でA1,A2,A3,A4,A5,B1,B2,B3,B4,B5,C1,C2,C3,C4,C5
に計算した値が入っていて、

Memo1

A1,A2,A3,A4,A5
B1,B2,B3,B4,B5
C1,C2,C3,C4,C5

というCSV形式でMemo1出力したいのですがどういう風に書けばいいですか?

892 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:23:03 ]
1個ずつ出力して下さい。
ループが欲しけりゃ配列にして下さい。

893 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 13:15:46 ]
TBitBtnやTToolBarで使えるビットマップデータはどこで入手できますか?
インストールされたフォルダを探してもサンプル用のがちょっとあるだけだし、
いちいち作るの大変だし…



894 名前:デフォルトの名無しさん [2009/01/06(火) 23:25:37 ]
C++Builder 2009 のトライアル版を使い始めたのですが、
良い関連書籍は無いでしょうか?初心者向けの。。。
今日ヨドバシに行ったのですが、VC++の本ばかりで、
C++Builder関連は3冊くらい(応用編のような感じ)しかありませんでした。

895 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 09:19:24 ]
Delphiの本と開発者ガイドで大抵は事足りる。

896 名前:デフォルトの名無しさん [2009/01/12(月) 21:25:18 ]
ユーザーが商品コードを入力(Edit1)して検索ボタン(Button1)を押したら、
商品名(Label1)を表示したいのですが、
ACCESSのDLookupのような命令はどう書けば良いでしょうか?


897 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:51:53 ]
また>>896みたいな阿呆が沸いてきたな
情報を小出しにするのはヤメレ


898 名前:896 [2009/01/12(月) 23:50:12 ]
>>897
阿呆な質問だったみたいですいません。
サーバーにあるMySQLの商品テーブル接続まではうまく行って、
テストで特定のEdit欄に商品名を表示することまでは出来たのです。

で次は、Editに商品コードを入力して検索ボタンを押したら、
Labelに該当する商品名を表示させたいと思ったんですが、そこが
うまくいかなくて。

TADOConnectionコンポーネントでADO接続。
TADOTableで商品テーブルと接続。
TDataSourceを配置。

IF文で、Text1のコードで商品テーブルの商品コードを検索し、
該当のコードがあればそのレコードの商品名を返せば良い。
というのはわかるんですが。
コンポーネント活用ガイド&実践プログラミング〈Vol.3〉データベーステクニック編
を読みながら書いても、2009版ではエラーが出てしまって。
全然解決しないもので、困ってました。

899 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 14:42:37 ]
エラーと漠然と書かれても、コンパイルエラーなのか実行時エラーなのかもわからんし、
答えようもない。



900 名前:896 mailto:sage [2009/01/13(火) 19:41:05 ]
すいません。
Lookupで自己解決しました。

901 名前:デフォルトの名無しさん [2009/01/14(水) 16:06:50 ]
計算をしたとき算出した小数の値が8.4345356554E248のようにEを含んだ値になってしまうのですが
これをEを含ませず、また答えとして小数点6桁程度に抑えたいのですがどのようにすればよいのでしょうか?
上記の答えは double A;で宣言したときになったものでfloat A;で宣言するとオーバーフローとエラーがでてしまいます。

902 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 17:25:58 ]
>>901
ひとまずグーグル先生に「書式 sprintf」と聞いてみたらいいと思うよ。

903 名前:デフォルトの名無しさん [2009/01/14(水) 18:12:23 ]
>>902
返信ありがとうございます。
サイトでは何度も確認していたのですが、c++builderでは下のように書き出しており
%●●という形で小数点の値を6桁と指定して残りを切り捨てという形に仕方はどうしてもわかりません。

宣言文の箇所で小数点の桁数の指定、またEなど数字以外のものを使用させないようにすることはできないでしょうか?
基本的なことなのかもしれませんがどうしてもわかりません;

double A;
---(計算)----
Memo1->Lines->Add(A);
このような感じです



904 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 18:26:04 ]
>>903
www9.plala.or.jp/sgwr-t/c/sec05.html


905 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 18:27:03 ]
>>903
ひとまずグーグル先生に「書式 sprintf」と聞いてみたらいいと思うよ。

906 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 18:58:37 ]
>>903
Memo1->Lines->Add(AnsiString.sprintf("自分で考えてね", A));
って書けばいいよ。

907 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 02:14:20 ]
手元に環境が無いため、曖昧な質問ですいません。

日本語環境(XP SP3&BCB6)で作成したものを英語版のWindowsXPで実行すると、表示がおかしくなるようなことってありますか?
Imageの中の表示がおかしいだけでなく、コンポーネントの配置や大きさもずれていたりします。
表示等に2byte文字は使っていないつもりです。
グラボとかの問題でもこのようなことは発生することってありますか?
よろしくお願いします。

908 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 17:27:03 ]
>>907
設計時のフォームのフォントのCharsetが気になるな。

フォームのコンストラクタでthis->Font = Screen->IconFont;して
表示崩れ直るか確認してみたら?(ParentFont=trueの状態で)

909 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 23:49:09 ]
>>908
返事ありがとうございます。
this->Fontでは表示は崩れませんでした。
ただ、CharsetはシフトJISになっていました。
これによって位置がずれたりするのでしょうか?

910 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 16:21:09 ]
>>909
charsetが影響するよ。実行時環境のcharsetが特定できないなら、
好みのフォント設定後、this->Font->Charset = Screen->Font->Charset
でいいんじゃないかな。

英語XPでも、言語オプションの非ユニコードアプリを何語と解釈するかを「日本語」に
セットすることで日本語XPと同じ表示にできるよ(フォントがインストールされていれば)

911 名前:デフォルトの名無しさん [2009/01/26(月) 16:04:21 ]
アプリを起動するときvcl60.bplが見つからない。のエラーが出るときは、
「共有RTL DLLを使う」のチェックを外してコンパイルすると
vcl60.bplをいっしょに配布しないで良いですが、
hoge.dllファイルを配布しない方法はないでしょうか?

ttp://me.me.tokushima-u.ac.jp/~miw/H8/pukiwiki/index.php?BCB%A4%C7%A4%CEDLL%A4%CE%BB%C8%A4%A4%CA%FD
このページ見ると、静的、動的どちらにしてもプログラムの見えるところに
dllファイルを置かないとだめなようですが。

912 名前:デフォルトの名無しさん [2009/01/26(月) 16:37:23 ]
hoge.dllはあなた独自のdllだから一緒に配布しちゃえばいいんでないの

913 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:07:32 ]
>>912
レスありがとうございます。
ttp://www.gesource.jp/programming/bcb/22.html
こういうページもあったのでやってみましたが、dllが同じフォルダにないと
起動したときにエラーでちゃいます。
できるのはbuilderのライブラリだけですか。

いろいろ検索してるとgccのページが出てくるんですが、
静的リンクでコンパイルするとサイズが大きくなると書いてあったので
てっきり実行ファイルの中にライブラリが埋め込まれる感じで
ライブラリが要らなくなるものだと思いました。

静的ライブラリも動的ライブラリもいっしょに配らないとだめで、
ロードされるタイミングだけなんですね。



914 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:43:42 ]
自作でDLLを作成して呼び出すようにしたのが悪いんだろ
DLLも全部一緒くたに中に書いてしまえ

915 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:45:34 ]
もしかしてスタティックリンクライブラリとDLLの区別がついてないんじゃないか

916 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:46:35 ]
ていうか、DLLのソースorOMF形式のobjまたはlib(インポートライブラリじゃなくてスタティックリンクライブラリのほう)はないのか?
それがあるならプロジェクトにobjやlib放り込めばDLLいらないんだが。

917 名前:911 mailto:sage [2009/01/26(月) 18:32:24 ]
>>914-916
レスありがとうございます。

>インポートライブラリじゃなくてスタティックリンクライブラリのほう
なるほど、検索すると出てきました。拡張子が同じでも本物と
ちょっと違うのがあって、implibで作ったのはインポートライブラリ。
スタティックリンクライブラリを作ってやってみます。

918 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:59:45 ]
リストボックスに入りきらない場合、水平スクロールバーを出したいのですが、どのように設定したらよいのでしょうか?

919 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:31:42 ]
LB_SETHORIZONTALEXTENT

920 名前:デフォルトの名無しさん [2009/02/19(木) 11:52:00 ]
c++builderって指名ユーザーライセンスという形態を取っているみたいですが、
自宅用に買ったc++builderを会社のマシンに(もちろん使うのは自分のみ)
インストールして使うのは有りなんでしょうか?


921 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 12:06:50 ]
>>920
ありでしょ。
不安なら問い合わせてみれば?

922 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:42:32 ]
アカデミックからスタンダードにライセンスをアップグレードすることって出来ますか?







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<254KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef