ab.com コミュニティ

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

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




新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 
作成者 メッセージ
 記事の件名: Footy2
投稿記事Posted: 2007年9月13日(木) 18:43 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
Footy2というテキストエディタを使おうと思って普通に

Declear function GetVersionFooty()....

っという風に普通に呼び出そうと思ってコードを書いていざコンパイルしたら、
「Footy2.DLLが見つかりません。」となってしまいます。

ABのフォルダにも入れてますがだめ、Windowsフォルダに入れてもだめ、
ABから、Footy2が使えないのでしょうか?

追記
ちなみに、C言語のヘッダファイルを移植してあります。
バージョン情報だけ取得する命令でも認識しません。
いま、手元にソースがないのでちょっと公開できませんが...


通報する
ページトップ
 記事の件名: Re: Footy2
投稿記事Posted: 2007年9月13日(木) 19:03 
オフライン

登録日時: 2005年5月31日(火) 10:52
記事: 264
お住まい: 高知
引用:
> Footy2というテキストエディタを使おうと思って普通に
>
> Declear function GetVersionFooty()....
>
> っという風に普通に呼び出そうと思ってコードを書いていざコンパイルしたら、
> 「Footy2.DLLが見つかりません。」となってしまいます。
>
> ABのフォルダにも入れてますがだめ、Windowsフォルダに入れてもだめ、
> ABから、Footy2が使えないのでしょうか?
>
> 追記
> ちなみに、C言語のヘッダファイルを移植してあります。
> バージョン情報だけ取得する命令でも認識しません。
> いま、手元にソースがないのでちょっと公開できませんが...
ABのフォルダに入れてもWindowsフォルダに入れてもDLLの検索には引っかかりませんよ。

DLLはコンパイルした実行ファイル(EXE)のあるフォルダかWindowsディレクトリ下のSystemフォルダまたはSystem32フォルダ内に入れる必要があります。


開発しているソフトが再配布を考慮したものであれば、
実行ファイルのあるフォルダに同梱しておくのが良いと思います。



もし、DLLのあるフォルダと実行ファイルのあるフォルダを別にしたいときは
関数をGetProcAddress()を使って動的に読み込む方法もあります。
コード:
TypeDef FuncPtr_GetFooty2Ver = *Function() As Long

Dim hLib_Footy2 As HINSTANCE
hLib_Footy2=LoadLibrary("./DLL/footy2.dll")

Dim GetFooty2Ver As FuncPtr_GetFooty2Ver
GetFooty2Ver=GetProcAddress(hLib_Footy2,"GetFooty2Ver")

Dim Versione_Footy2 As Long
Versione_Footy2=GetFooty2Ver()


FreeLibrary(hLib_Footy2)
上記は実行ファイルのあるディレクトリ下にDLLフォルダを作成してその中に
Footy2.DLLをおいた場合です。


通報する
ページトップ
 記事の件名: Re: Footy2
投稿記事Posted: 2007年9月14日(金) 17:13 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
> DLLはコンパイルした実行ファイル(EXE)のあるフォルダかWindowsディレクトリ下のSystemフォルダまたはSystem32フォルダ内に入れる必要があります。
> 開発しているソフトが再配布を考慮したものであれば、
> 実行ファイルのあるフォルダに同梱しておくのが良いと思います。
そこにおいていても、認識しないんですよ。

> もし、DLLのあるフォルダと実行ファイルのあるフォルダを別にしたいときは
> 関数をGetProcAddress()を使って動的に読み込む方法もあります。
>
コード:
TypeDef FuncPtr_GetFooty2Ver = *Function() As Long
> 
> Dim hLib_Footy2 As HINSTANCE
> hLib_Footy2=LoadLibrary("./DLL/footy2.dll")
> 
> Dim GetFooty2Ver As FuncPtr_GetFooty2Ver
> GetFooty2Ver=GetProcAddress(hLib_Footy2,"GetFooty2Ver")
> 
> Dim Versione_Footy2 As Long
> Versione_Footy2=GetFooty2Ver()
> 
> 
> FreeLibrary(hLib_Footy2)
> 
> 上記は実行ファイルのあるディレクトリ下にDLLフォルダを作成してその中に
> Footy2.DLLをおいた場合です。
このコードを使ってやって見ます。
ありがとうございます。


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

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


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[25人]


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

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