C++Builder相談室 Part15
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/08/21(日) 17:48:30過去スレ・関連サイトは>>2-7あたり。
0320デフォルトの名無しさん
2005/10/13(木) 01:07:41DLL と exe を同じ環境・バージョンでコンパイルしても、それぞれ別個のライブラリ
を参照していることになるのですよ。
0321デフォルトの名無しさん
2005/10/13(木) 01:58:30オブジェクトはやりとりできない。動くこともあるけど、たまたま VMT の
相対アドレスが一致していた偶然と考えるべき。FAQ ですね。
0322デフォルトの名無しさん
2005/10/13(木) 08:31:01Delphi2まではIDEにインストールしたコンポーネントはdllにコンパイルされてたぞ?
一般的にダメというならCOMなんか成立しない。条件による。
VMTはふつーにPEローダーによって再配置されるし。
現に>>319も
> 一度でもdllの中で関数が渡す*Canvasのプロパティを変更したりメソッドを
> 使ったりすると
と、わかってる。
このケースがダメな理由は、TBitmapがグローバル変数を参照するから。具体的にはCanvasやBrush等のGDIオブジェクトがキャッシュされているから。
メモリマネージャを共有して、Canvasを使ったらFreeMemoryContextsを呼ぶようにして、Brushなんかは変更しないようにすれば良さげ。(VCLソースをざっと見た限り。他になんかあるかも)
ただ、別個に注意点が沢山出来て面倒なのと、コンパイラ・ライブラリが同じバージョンであることを保証できないのとで、普通はやらないから格言になってるけれど…。
無条件にダメとか偶然とかそんなのでは無い。
このケースなんかだと、Bitmap.Canvas.Handleだけ渡して、.dllの中で別にテンポラリのTCanvas作って、そのHandleに渡されたHandleを代入して使えばどう?
0323デフォルトの名無しさん
2005/10/13(木) 10:34:21見え見えですね。
> このケースなんかだと、Bitmap.Canvas.Handleだけ渡して、.dllの中で別にテンポラリのTCanvas作って、
> そのHandleに渡されたHandleを代入して使えばどう?
TCanvas は、ペンやブラシなどリソースマネージャが関与するデバイスコンテキストハンドル
のラッパです。DLL と exe とで別々のマネージャを持ってるのにハンドルだけ渡して
うまくいくわけ無いでしょ。一見うまくいくとしても、一方での内容変更が他方での
変更に自動的に反映するわけじゃないので齟齬が生じます。
TCanvas.Handle を DLL と exe で渡せないことは Delphi-ML でも過去に話題になりました。
VCL オブジェクトは、exe 内、 dll 内 で作成してその中で使う分には問題ないです。
やり取りはできません。
0324デフォルトの名無しさん
2005/10/13(木) 12:47:16PC−ネットワーク(TCP/IP)−装置
という構成でPCと装置間で、データの送受信を行いたいのですが、
PC上の制御ソフトではネットワーク通信を行うために必要なコンポーネント(ライブラリ?)はどのようなものでしょうか?
根本的にネットワーク通信のイロハのイの字も知らないため、ネット上でヒント等を探したりはしているのですが、なかなか要領を得られません・・・。orz
尚、制御ソフトの設計はC++Builder5を使用し、RS232CやGPIB通信プログラムの設計を行ったことはあります。
よろしくお願いします。
0325デフォルトの名無しさん
2005/10/13(木) 13:24:350326デフォルトの名無しさん
2005/10/13(木) 13:53:39dll と exe は同一の仮想メモリ空間なんだから、mosaic がなにをするのか知らない
けど、ビットマップのピクセルをいじるんだったら、Scanline[] をポインタの配列
として渡したらどうでしょうか?
または、TCanvas で行き来できないので、TBitmap の SaveToStream() でメモリイメージ
としてやり取りするとか。
0327デフォルトの名無しさん
2005/10/13(木) 15:41:58http://members3.jcom.home.ne.jp/jellyjam/pages/Del/graph.html
※半透明コピーのサンプルコード(500KB)
Bmp1 に Bmp2 をコピーします。 Bmp2 が Bmp1 の大きさを超えるときは、はみでた部分は描画しません。 なお、強制的にフルカラーにしてしまうので気をつけてください……というかビットマップの PixelFormat は pf32bit にしておいてください。
●そのいち
Type
0328デフォルトの名無しさん
2005/10/13(木) 15:58:180329319
2005/10/13(木) 18:46:10dll自体がよくわかっていないのですが、dllとexeはメモリは共有するがインスタンスを
共用できないのでしょうか。それが共通パッケージを使うとそれができる?
今回の目的は、dllファイルを削除することによって関数が無効になる処理を入れること
ですので、共有ライブラリを使用する方法で試したらきちんとTBitmapが解放できました
のでこれでいこうと思います。ありがとうございました。
0330デフォルトの名無しさん
2005/10/13(木) 21:30:25は?
TCanvasは色々キャッシュされたりはするけれど結局単なるDCのラッパーで、たとえばHandleにGetDC(0)とかで取ってきたデスクトップ全体のデバイスコンテキストなんか代入して使えちゃったりするわけなんだが…。
できないのであれば、そもそもTCanvasのHandleが書き込み可能になってないだろ。
TCustomControl.PaintWindowなんか、Windowsから渡されたDCをCanvasのHandleに代入してるだけだぞ。
勿論、TCanvasは色々キャッシュしたりするので、その点は気を使う必要がある。
あと、オブジェクトそのものも、同バージョン同ライブラリが確実なのであれば、メモリマネージャ共有すれば、グローバル変数とかRTTIがexeとdllで別になることさえ気をつけてれば、渡せるよ。諸々の条件クリアがめんどくさいが。
0331デフォルトの名無しさん
2005/10/14(金) 01:56:00手動で変数名変えるのに疲れました・・・orz
0332デフォルトの名無しさん
2005/10/14(金) 07:12:560333デフォルトの名無しさん
2005/10/14(金) 09:52:00BCB2006
0334デフォルトの名無しさん
2005/10/15(土) 23:58:58Memo1->Lines->Count
がそうだと思ってやってみたのですがどうも違うみたいで・・・
よろしくお願いします
0335デフォルトの名無しさん
2005/10/16(日) 00:06:56いやそれでいいとおもいますけど?
WordWrapがonだとうまくいかないかも
0336デフォルトの名無しさん
2005/10/16(日) 02:14:010337デフォルトの名無しさん
2005/10/16(日) 08:58:35{
//http://www.borland.co.jp/tips/cbuilder/cb006/vcldat_1.html
TStringList *List = new TStringList;
List->Assign(Memo1->Lines);
Caption = List->Count;
//List->Delete(0);
//List->Sort();
//Memo1->Lines->Assign(List);
delete List;
}
0338デフォルトの名無しさん
2005/10/16(日) 10:43:45{
TStringList* MyList = new TStringList();
AnsiString a = "070二郎";
AnsiString b = "100一郎";
AnsiString c = "080三郎";
MyList->Add(a);
MyList->Add(b);
MyList->Add(c);
MyList->Sort();
Memo1->Lines->Add(MyList->Count);
Memo1->Lines->Add(MyList->IndexOf(a));
Memo1->Lines->Add(MyList->IndexOf(c));
Memo1->Lines->Add(MyList->IndexOf(b));
Memo1->Lines->Add(MyList->Strings[0]);
Memo1->Lines->Add( ( (MyList->Strings[0]).SubString(1,3)).ToInt() );
Memo1->Lines->Add( ((WideString)MyList->Strings[0]).SubString(4,2) );
delete MyList;
}
0339デフォルトの名無しさん
2005/10/16(日) 16:18:34RichEdit コントロールで文字,もしくは範囲を選択すると,現在の文字位置や選択開始および終了位置の情報がステータスバーに表示されます(または,コードを直接 OnSelectionChange イベントハンドラに貼り付けることができます)。
void __fastcall TForm1::FormCreate(TObject *Sender)
{
RichEdit1->Align = alClient;
RichEdit1->OnSelectionChange = RichEdit1SelectionChange;
StatusBar1->SimplePanel = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RichEdit1SelectionChange(TObject *Sender)
{
StatusBar1->SimpleText = AnsiString("選択の開始: ") + IntToStr(RichEdit1->SelStart) +
AnsiString("選択の終了: ") + IntToStr(RichEdit1->SelStart + RichEdit1->SelLength);
}
選択の開始を行表示に変更する方法がわかりません。
よろしくお願いします。
0340デフォルトの名無しさん
2005/10/16(日) 16:22:580341334
2005/10/16(日) 23:27:06書き込みしてから急に用が出来てしまって、まだ出先で試していないのですが
帰ってすぐにやってみようと思います
みなさま本当にありがとうございました
0342デフォルトの名無しさん
2005/10/17(月) 00:26:49製品情報だけでも早く公開してください。
0343デフォルトの名無しさん
2005/10/17(月) 08:35:26お願いします。
0344デフォルトの名無しさん
2005/10/17(月) 08:52:31くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/
0345デフォルトの名無しさん
2005/10/19(水) 22:41:570346デフォルトの名無しさん
2005/10/19(水) 23:17:470347デフォルトの名無しさん
2005/10/20(木) 23:41:02sndPlaySound()で再生自体は出来たのですが、
指定した位置(ファイルの最初から一分後など)から再生をしたいのです
検索してみてDirectXとかを使うと出来そう(?)なことはわかったのですが
私にはちょっと敷居が高いような感じでした、、
よろしくお願いいたします
0348デフォルトの名無しさん
2005/10/21(金) 09:37:06TMediaPlayer使って 1分後を
MediaPlayer1->Positionで指定して再生すれば?
0349デフォルトの名無しさん
2005/10/22(土) 08:37:01__property Classes::TNotifyEvent OnCreate = {read=FOnCreate, write=FOnCreate, stored
=IsForm};
説明
OnCreate イベントハンドラを記述すると,フォームが作成され,
TCustomForm のコンストラクタによって呼び出されたときに
特別な処理を実行することができます。イベントハンドラを実装,
あるいは TCustomForm のコンストラクタのオーバーライドのいずれかを
行う必要がありますが,両方を行ってはなりません。
OnCreate イベントで作成されたオブジェクトは OnDestroy イベントで解放する必要があります。
フォームが作成されるとき,Visible プロパティが true であれば
イベントが以下の順序で発生します。
1. OnCreate
2. OnShow
3. OnActivate
4. OnPaint
注意フォームのコンストラクタとのやり取りが不良になる可能性が
あるので,C++Builder で OnCreate イベントを使うことはお勧めできません(OldCreateOrder を参照)。かわりに,フォームコンストラクタをオーバーライドすることをお勧めします。
0350デフォルトの名無しさん
2005/10/24(月) 12:44:5110/12のWinUpdate MS-052を行ってから
C++Builder5で作成した ActiveFormが動作しなくなりました
ベリサインは取ってあります(本質的に関係ないですが)
どなたか対応されたかたいますか?
0351デフォルトの名無しさん
2005/10/24(月) 18:06:33一応DelもBCBも6のバージョンまでは、公式にはマズイ
ことになっているはずなんですけど。
WinSCPなんかは付いてますね。
0352デフォルトの名無しさん
2005/10/24(月) 18:30:520353デフォルトの名無しさん
2005/10/26(水) 17:57:07あなたゎこの1ヶ月以内に好きな人と両思い
またゎ付き合っている子ゎすごくLOVE2になります!!
それにゎこの文章をコピーして他の掲示板に3回別の掲示板に
はればOK!!!たったこれだけであなたわぁ
最高の生活がおくれます!!
ただしこれをしなかったら
きっと両思いになることゎないでしょう!!(/□≦、)
やった子ゎ今でゎ学校1のLOVE2カップルです!!
これをやらなかった子ゎすぐに彼氏と別れてしまいました
0354デフォルトの名無しさん
2005/10/26(水) 23:55:280355デフォルトの名無しさん
2005/10/28(金) 22:41:04TPageControlの枠の色は親FormのColorと同じになりますが、
親FormのColorを実行中に変更してもすぐに反映されません。
一度Visibleをfalseにしてから再度trueにすると反映されますが、
もうちょっとスマートな方法は無いでしょうか。
385 :デフォルトの名無しさん :2005/10/28(金) 16:11:23
>>384
InvalidateRect(PageControl1->Handle, NULL, TRUE);
0356デフォルトの名無しさん
2005/10/30(日) 22:20:36Richard Kaiser (著) ペーパーバック (2005/10/30) Springer Verlag
近日発売 予約可
http://www.amazon.co.jp/exec/obidos/ASIN/3540010270/
0357デフォルトの名無しさん
2005/10/30(日) 22:27:56Publisher writes:
C++ with the Borland C++Builder presents comprehensively and
systematically all language elements of the ANSI/ISO standard
of C++. Contexts and language concepts are in the foreground.
The author uses the version 6 of the Borland C++Builder as
development system. This visual system is the C++ variant of
the Pascal development system Delphi and makes a simple
development of programs for Windows possible. Almost all
examples and exercises are Windows programs. However, since
the ANSI/ISO standard of C++ is in the foreground, this book
is also suitable for readers who work with other compilers.
The class library of the C++Builder (VCL) is used as an example
of a class hierarchy. The CD-ROM contains many examples and
exercises with solutions.
Keywords: C++, C++ Builder, Client/Server, Programming
Languages, Objectoriented Programming, Windows Programming
Contents:
From the contents: The Integrated Development
Environment.- The Component Palette.- Elementary
Data Types and Statements.- Structured Data Types
and Predefined Classes.- Statements and Impressions.
- Functions.- Modular Programming in Namespaces.-
Object-Oriented Programming.- The Visual Component Library (VCL).-
Templates and the STL.- Miscellaneous.- Bibliography.- Index.
0358デフォルトの名無しさん
2005/10/31(月) 13:54:49Excelのマクロでどんな感じで処理しているか見て
みたのですが、いまいち分かりません。
ご教授頂けないでしょうか?
作りたい処理(マクロで登録した手順)は
[編集]置換→検索文字列入力→置換後の文字列入力部でCtrl+j→置換
です。
宜しくお願いします。
0359デフォルトの名無しさん
2005/10/31(月) 14:27:360360デフォルトの名無しさん
2005/10/31(月) 16:57:06コピペ乙
0361デフォルトの名無しさん
2005/10/31(月) 20:40:290362デフォルトの名無しさん
2005/10/31(月) 22:50:120363デフォルトの名無しさん
2005/10/31(月) 23:07:390364デフォルトの名無しさん
2005/11/01(火) 09:36:33Pre-order Delphi 2006 and receive a 15% discount off the list price
(special pre-order pricing good from 10/17 to 12/1)
Delphi 2006 includes complete RAD support for Delphi for Win32®, Delphi for .NET, C++, and C# programming languages.
0365デフォルトの名無しさん
2005/11/01(火) 09:38:50Borland® C++Builder® 2006
0366デフォルトの名無しさん
2005/11/01(火) 09:41:540367デフォルトの名無しさん
2005/11/01(火) 09:53:27Delphi 2006,C++Builder 2006,C#Builder 2006は,
10月17日〜12月1日まで先行予約を受け付ける。先行予約者に対しては,
15%のディスカウントが適用される。商品の出荷は12月初旬が予定されている。
0368デフォルトの名無しさん
2005/11/01(火) 11:16:06VCLは英語版じゃどうしようもないのが悲しいな
0369デフォルトの名無しさん
2005/11/01(火) 13:24:20Upgrageパスが残されていたか。正直ホッとした。
しかし4万超えるな。これだけ間を置いたから仕方ないのか。
0370デフォルトの名無しさん
2005/11/01(火) 13:37:410371デフォルトの名無しさん
2005/11/01(火) 13:48:39向こうの値段はこっちより高い。
6Proも実売$900-$1000はする。
0373デフォルトの名無しさん
2005/11/01(火) 13:50:33情報サンクス。じゃあ待つとするか。絶対買うからね>某
0374デフォルトの名無しさん
2005/11/01(火) 18:06:31放流・拡散よろ
0375デフォルトの名無しさん
2005/11/01(火) 18:20:03WindowsはUnicodeとマルチバイト(日本語ではShift-JIS)の両方から選べるようになっている。
ただしUnicodeはNT系限定という罠。
C++自体はWindowsと無関係にUnicodeもマルチバイトも好きに使えるから、
必要に応じてマルチバイトとUnicodeとを変換していけばいい。
0376デフォルトの名無しさん
2005/11/01(火) 18:37:44通報しますた。
0377デフォルトの名無しさん
2005/11/01(火) 18:39:22○>>374 orz
しかし、どちらにしても許諾コードの取得には制限があるから、
意味ないと思うんだが。
今回のBCB2006は、boostへの対応度が100%近くになる
らしいので、凄く期待している。頼んだよ某さん。
0378デフォルトの名無しさん
2005/11/01(火) 22:56:270379デフォルトの名無しさん
2005/11/02(水) 00:12:100380デフォルトの名無しさん
2005/11/02(水) 02:40:280381デフォルトの名無しさん
2005/11/02(水) 11:12:430382デフォルトの名無しさん
2005/11/02(水) 13:41:330383デフォルトの名無しさん
2005/11/02(水) 13:47:540384デフォルトの名無しさん
2005/11/02(水) 14:05:44言い出しっぺが自分の「ちょっとさ」を売りにすることで
免除されることなんて何も無い。
0385デフォルトの名無しさん
2005/11/02(水) 15:49:31三次元座標をプロットしていくようなプログラムは
C++ビルダーでは難しいでしょうか?
もし何か元になるようなプログラムがありましたら、
教えていただけると大変助かります。
よろしくお願いします。
0386デフォルトの名無しさん
2005/11/02(水) 16:22:230387デフォルトの名無しさん
2005/11/02(水) 16:44:15幾何計算が重要だろうから、開発ツールの差異なんか些細なもんじゃないか?
座標変換(3次元空間⇔2次元平面、2次元平面⇔スクリーン座標)だとか、設計の
方で時間と頭を使うと思うよ。
0388デフォルトの名無しさん
2005/11/02(水) 17:12:16たぶん、>>385さんの脳内にある完成品と同じ機能を持った
コンポーネントがC++Builderに存在しないから、「C++Builderでは難しい」
ということになるのだと思う。
0389デフォルトの名無しさん
2005/11/02(水) 21:37:09そんなコンポーネントはサードパーティーの高価なライブラリ
しか無さそうだ。俺はCAD設計で座標系は慣れたけど、最初の
作り込みは大変だぞ。ベクトル計算は浮動少数点数の誤差管理が
肝だし。趣味のプログラミングなら曖昧でも構わないが・・・
0390デフォルトの名無しさん
2005/11/02(水) 22:20:070391デフォルトの名無しさん
2005/11/03(木) 01:17:14C++ではグローバル変数をほとんど使いません。
人によってはグローバル変数は1つも使うなとさえ言います。
http://www.plustarnet.com/aspil/Programming/cpp00.htm
class CHero{
private:
long m_lLife;// ライフ
};
メンバ変数 m_lLife をForm1とForm2で使えるようにするには
class CHero{
private:
long m_lLife;// ライフ
};
をどこに書けばいいのでしょうか?
よろしくお願いします。
0392デフォルトの名無しさん
2005/11/03(木) 01:23:22http://www1.kcn.ne.jp/~robe/cpphtml/htmlword/words020.html
http://news19.2ch.net/test/read.cgi/newsplus/1130936492/561
C++ではグローバル変数をほとんど使いません。
人によってはグローバル変数は1つも使うなとさえ言います。
http://www.plustarnet.com/aspil/Programming/cpp00.htm
class CHero{
private:
long m_lLife;// ライフ
};
メンバ変数 m_lLife をForm1とForm2で使えるようにするには
// CHeroクラスオブジェクトの宣言
CHero hero;
をどこに書けばいいのでしょうか?
よろしくお願いします。
0393デフォルトの名無しさん
2005/11/03(木) 02:07:03extern int someNumber;
と「宣言」し、ソースファイル(ex. Unit1.cpp)で
int someNumber;
と「定義」します。で、この変数を使いたいユニットは
#include "Unit.h"
とします。
ヘッダファイルで「定義」してしまうと、各ユニットごとに同名の別々の変数ができてしまうので注意です。
http://gimite.ddo.jp/bcbqtree/qtreemain.cgi?mode=thread&thread=42
0394デフォルトの名無しさん
2005/11/03(木) 02:48:21いやまあ、グローバル変数を使ったからといってパソコンが熱暴走して爆発すると
いうわけでもないので、個人で自分用にプログラムを作っている限りは、
構わないんじゃないかと・・・
グローバル変数が嫌われるのは、どこか知らないところで他人がいじっている
かも知れないけど、それを知るすべがないため。あるいは、逆に、どこかよそで
あらかじめ初期化もらっておかなければならないときに、その変数の値だけを
見たのでは、初期化されているかどうかを確認できないというため。
自分ひとりで小規模なプログラムを作っている場合なら、まあ問題ない。
で、勉強したいなら、"グローバル変数 シングルトン" で検索してみるといい。
これはC++Builder固有の話じゃなくてC++言語一般の質問にすべきものだから、
もし続けるならそちらのスレッドに移動しよう。
0395デフォルトの名無しさん
2005/11/03(木) 12:22:38http://news19.2ch.net/test/read.cgi/newsplus/1130985853/l50
お前ら様方大丈夫ですか?これ
WEB系開発者は対応しないとまずいのでは?
0396デフォルトの名無しさん
2005/11/03(木) 15:18:130397デフォルトの名無しさん
2005/11/03(木) 15:36:080399デフォルトの名無しさん
2005/11/04(金) 09:19:57クラス内で定義された変数のことを、メンバ変数といい、
クラス内で定義された関数のことを、メンバ関数と呼びます。
メンバ変数は、通常 private: キーワードで指定して、
クラス外からアクセス出来ないようにします。メンバ関数は、
public: キーワードで指定して、外部からアクセス出来るようにしています。
クラス内だけからしかアクセス出来ない仕組みはカプセル化と
呼ばれますが、これのおかげでバグが出ても直ぐに修正出来る
プログラムを作ることが出来ます。クラス内のバグは、クラス内のみを
見れば良いということです。むやみやたらと、どこからでも参照出来る
グローバル変数を多用してしまうと、バグが出たときに非常に
修正しにくいプログラムになってしまいます。
0400デフォルトの名無しさん
2005/11/04(金) 09:21:240401デフォルトの名無しさん
2005/11/05(土) 16:00:40RichEdit内で現在カーソルがある所の(先頭からの)行数を知るにはどうすれば良いのでしょうか?
よろしくお願いします。
0402デフォルトの名無しさん
2005/11/06(日) 10:47:170403デフォルトの名無しさん
2005/11/06(日) 11:25:16主キーの定義は一つのカラムに。
内容はユニークなだけで意味の無いものにしておけよ。
参考書に書いてても伝票番号、明細番号とかの複合キーにしないように。
0404デフォルトの名無しさん
2005/11/06(日) 11:36:45素人キター
0405デフォルトの名無しさん
2005/11/06(日) 13:57:10>参考書に書いてても伝票番号、明細番号とかの複合キーにしないように。
なんで?
0406デフォルトの名無しさん
2005/11/06(日) 16:35:54意図的に "sag e"なんて書いてスレをあげるような
コピペ荒らしに、いちいち反応しない。スレの内容と何の
関係もないじゃん。
0407デフォルトの名無しさん
2005/11/07(月) 07:31:45(filedate は、TDateTime型の変数)
filedate.FormatString("ddd','d' 'mmm' 'yyyy' 'hh':'nn':'ss' +0900'");
すると、曜日の省略形(ddd)や、月の省略形(mmm)が、日本語表記になるようで、次のような文字列になってしまいました。
土, 1 10 2005 17:50:11 +0900
FormatStringメソッドを利用して、「Sat」とか「Oct」とかのような英語表記を得るにはどうすれば良いのでしょうか?
ヘルプによると、曜日の省略形は ShortDayNames グローバル変数にあり、
月の省略形は ShortMonthNames グローバル変数にあると記述されています。
というわけで、以下のようにあらかじめ記述しておけば、英語表記にすることは
可能でした。
ShortDayNames[0] = "Sun";
ShortDayNames[1] = "Mon";
ShortDayNames[2] = "Tue";
ShortDayNames[3] = "Wed";
ShortDayNames[4] = "Thu";
ShortDayNames[5] = "Fri";
ShortDayNames[6] = "Sat";
しかし、どうもこの書き方はスマートではないような気がするのですが…。
何か TDateTime のメソッドなどを利用して、英語表記の日付(曜日と月)を得る方法はないものでしょうか?
0408デフォルトの名無しさん
2005/11/07(月) 09:14:50WinAPIを直接呼べばできる。ほかのやり方はしらん。
TCHAR Buf[256];
SYSTEMTIME st;
GetSystemTime(&st);
LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
GetDateFormat(lcid, 0, &st,
TEXT("ddd','d' 'MMM' 'yyyy'"), Buf, sizeof Buf / sizeof Buf[0]);
MessageBox(0, Buf, TEXT(""), MB_OK);
日付と時刻用にそれぞれGetDateFormatとGetTimeFormatという2つにわかれているのに注意。
0409デフォルトの名無しさん
2005/11/07(月) 11:54:480410デフォルトの名無しさん
2005/11/07(月) 12:15:16本当に無償で使える「VMware Player」
http://yamashita.dyndns.org/blog/343
http://www.h7.dion.ne.jp/~qemu-win/index-ja.html
http://fabrice.bellard.free.fr/qemu/
ディスクイメージをQEMUでつくって、設定ファイルをeditorでこりこり書いてやればOK、ということらしい。すばらしひ。
しかしこれで、coLinuxに注いでいた労力が無駄になった気がしますです ^^;
0411デフォルトの名無しさん
2005/11/07(月) 22:07:07FormatString() を呼び出す前に SysLocale を設定すれば良いと思ったが失敗。
調べてみたら FormatString() 内部で呼び出している GetDataFormat() の第一引数が SysLocale では無く GetThreadLocale() だった。
結局>>408のようにするか、SetThreadLocale() 使ってロケールをセットするしかない見たい…さて、どちらが面倒だろう
0412デフォルトの名無しさん
2005/11/07(月) 22:45:33>SetThreadLocale() 使ってロケールをセットするしかない見たい
は取り下げ
0413デフォルトの名無しさん
2005/11/08(火) 04:44:22宜しくお願いします。
0414デフォルトの名無しさん
2005/11/08(火) 10:36:01通常はこのようなエラーは発生しませんが強制的にプリンターを初期化すると回避可能です。
#include <printers.hpp>
__(途中省略)__
char p_name[256],
p_drv[256],
p_port[256];
THandle devm;
TDevMode *dmw;
//プリンターの設定を変更
//GetPrinter は2回呼び出して下さい。
//2回呼び出さないとプリンタ情報を取得できません。
Printer()->GetPrinter( p_name, p_drv, p_port, devm );
Printer()->GetPrinter( p_name, p_drv, p_port, devm );
Printer()->SetPrinter( p_name, p_drv, p_port, devm );
__(以下省略)__
0415デフォルトの名無しさん
2005/11/08(火) 10:36:54ちなみに、
HORZRES + PHYSICALOFFSETX * 2 = PHYSICALWIDTH
VERTRES + PHYSICALOFFSETY * 2 = PHYSICALHEIGHT
HORZRES / LOGPIXELSX * 25.4 = HORZSIZE
VERTRES / LOGPIXELSY * 25.4 = VERTSIZE
の関係があるようです。
で、例えば、mBitmapというビットマップデータをgPrintResの解像度(dpi)で印刷する場合
doubleLogPixelsX,LogPixelsY;
TRectr;
LogPixelsX = GetDeviceCaps(Printer()->Handle,LOGPIXELSX);//ディスプレイの幅のピクセル数(論理インチ当たり) 解像度(dpi)
LogPixelsY = GetDeviceCaps(Printer()->Handle,LOGPIXELSY);
r.left = gPrintOffX * LogPixelsX / 25.4;//左上のオフセット ピクセル換算
r.top = gPrintOffY * LogPixelsY / 25.4;
r.right = r.left + mBitmap->Width * LogPixelsX / gPrintRes;//描画幅 ピクセル換算
r.bottom = r.top + mBitmap->Height * LogPixelsY / gPrintRes;
Printer()->BeginDoc();
Printer()->Canvas->StretchDraw(r,mBitmap);
Printer()->EndDoc();
のようにします。
0416デフォルトの名無しさん
2005/11/08(火) 17:38:52API概要
InternetOpen接続のための情報を初期化する
InternetConnectFTPサーバーと接続する
FtpCreateDirectoryFTPサーバー上に新規ディレクトリを作成する
FtpDeleteFileFTPサーバーからファイルを削除する
FtpGetCurrentDirectoryFTPサーバー上のカレントディレクトリを取得する
FtpGetFileFTPサーバーからファイルを取得する
FtpPutFileFTPサーバーへファイルを転送する
FtpRemoveDirectoryFTPサーバーからディレクトリを削除する
FtpRenameFileFTPサーバー上のファイル名を変更する
FtpSetCurrnetDirectoryFTPサーバー上のカレントディレクトリを指定する
InternetCloseHandleInternetConnectで取得した情報領域を解放する
FtpOpenFileFTPサーバー上で読み書きするファイルを指定する
InternetQueryDataAvailable指定したファイルから読み込み済みのバイト数を返却する
InternetReadFile指定したファイルから読み込む
InternetWriteFile指定したファイルに書き込む
InternetCloseHandleFtpOpenFileで取得した情報領域を解放する
FtpFindFirstFile条件に一致するファイル名の集合を返却する
InternetFindNextFileファイル名の集合からファイル名を取得する
InternetCloseHandleFtpFindFirstFileで取得した情報領域を解放する
0417デフォルトの名無しさん
2005/11/09(水) 13:43:39JPEG画像を生成できるものを使ったことがあるのですが、
それの逆で、複数枚のJPEG画像からaviファイルを生成する
方法を探しています。
windowsアプリが不慣れなもので、なかなか探せずにいるのですが
DirectShowというのでできるのかなと思ったのですが、その見解
はあっていますでしょうか。
想定している環境は
windows2000 server or windows2000 pro or windows xp pro
です。
DirectShowというのは、DirectXの一部で上記のOSをインストールして
あれば特にライセンス費用を払わなくても使用できるのですよね。
(基本的なことですみません)
ほかにJPEG画像→avi生成ができるものがあれば教えてください。
開発環境はC++Builder6 proです。
0418デフォルトの名無しさん
2005/11/09(水) 16:27:23ダイナミックに変えることは可能でしょうか?
もし可能でしたらその手法をお教え頂けないでしょうか?
0419デフォルトの名無しさん
2005/11/09(水) 19:06:00Change the text color on a push button
■ このスレッドは過去ログ倉庫に格納されています