ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月28日(日) 07:00

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 6 件の記事 ] 
作成者 メッセージ
 記事の件名: ファイルの関連付け
投稿記事Posted: 2007年12月18日(火) 23:05 
オフライン

登録日時: 2005年6月01日(水) 21:51
記事: 212
お住まい: 奈良県北西部
ファイルの関連付けで、
レジストリの部分は猫でもわかるプログラミングを見てできましたが、
コマンドラインの部分がうまくできていないのか、
関連付けたファイルをダブルクリックで開こうとすると、
「問題が発生したため、xxx.exe を終了します。 ご迷惑をおかけして申し訳ありません。」
というエラー報告のメッセージが出てきてしまいます。
*D & D ではちゃんと動きます

どこがいけないのでしょうか?
コマンドラインの取得部分は、
SPIRIT さんの WinTips のものを引用しました。

AB Ver.: 5.00.00 (CP3)


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2007年12月19日(水) 02:31 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
お住まい: 埼玉県東松山市
こんな感じでうまく動きますか?

before:
コード:
    lstrcat(pg,Ex"\q") 
    lstrcat(pg," %1")
after:
コード:
    lstrcat(pg,Ex"\q \q%1\q")

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2008年1月13日(日) 22:09 
オフライン

登録日時: 2005年6月01日(水) 21:51
記事: 212
お住まい: 奈良県北西部
返信遅れてしまって申し訳ありません。

konisi さんのおっしゃるとおり、
コード:
    lstrcat(pg,Ex"\q \q%1\q")
として、
CommandLine() の中を少しいじると、
できるようになりました。
ありがとうございます。

僕が試した PC だけだと困るので、
もしよければ下記の URL からダウンロードして、
試してみてください。
Download: ファイルへ直リンクしてあります

OS: WinXP SP2, WinME


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2008年1月14日(月) 20:38 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 899
お住まい: 東京都
icoやpgは、ZeroStringやlstrcatを使わなくても、単にico = Ex"\q" + buf + Ex"\q, 1"や、pg = Ex"\q" + buf + Ex"\q \q%1\q"で十分です(konishiさんの修正適用済)。

ZeroStringの結果を代入しても、結局その次の行の代入で参照できなくなります。
文字列の+演算子は左右を連結するのに十分なだけのメモリを確保して、それを結果とするためです。
そこへさらに、lstrcatで文字列を追加しているのは良くないです。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2008年1月15日(火) 21:53 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
お住まい: 埼玉県東松山市
本当だ、よく見たらString型だ。

WinAPIは*Char型(BytePtr型)で文字列処理を行ってるものが多いので、
簡単な文字表示以外の場面では、callocで領域を確保するようにしてみてはどうでしょうか?
開放忘れには十分に注意する必要があるんですが。

文字の連結にはwsprintfやlstrcatが使えます。
lstrcatは、長い文字を処理する時は動作が鈍るんですが。

文字列の長さの取得はlstrlenでしたっけ?

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2008年2月05日(火) 23:08 
オフライン

登録日時: 2005年6月01日(水) 21:51
記事: 212
お住まい: 奈良県北西部
返信、遅れてしまいすみません。


> 本当だ、よく見たらString型だ。
>
> WinAPIは*Char型(BytePtr型)で文字列処理を行ってるものが多いので、
> 簡単な文字表示以外の場面では、callocで領域を確保するようにしてみてはどうでしょうか?
> 開放忘れには十分に注意する必要があるんですが。
>
> 文字の連結にはwsprintfやlstrcatが使えます。
> lstrcatは、長い文字を処理する時は動作が鈍るんですが。

普通に "+" で繋げると、
表示される文字列が途切れてしまうので lstrcat にしたのですが、
良くないみたいですね。
なので、wsprintf に書き換えました。


> 文字列の長さの取得はlstrlenでしたっけ?

それでよかったと思います。


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 6 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Semrush [Bot] & ゲスト[19人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean