No.3ベストアンサー
- 回答日時:
libがないとリンクは出来ないでしょう
LoadLibraryとGetProcAddressを使ったサンプルです。
#include <windows.h>
#include <stdio.h>
HINSTANCE hDll;
long ( __stdcall *fft1dim)(
long,
double,
double*,
double*,
long,
long,
double,
double
);
int main(void)
{
hDll = LoadLibrary("CalFFT.dll");
if( ! hDll ){
printf("DLL load error");
return 1;
}
fft1dim = (long(__stdcall*)(
long,
double,
double*,
double*,
long,
long,
double,
double)
) GetProcAddress( hDll, "fft1dim");
if( !fft1dim ){
FreeLibrary( hDll );
printf("Get function error");
return 2;
}
printf("OK!");
FreeLibrary( hDll );
return 0;
}
No.2
- 回答日時:
>宣言文を色々確かめたのですが、コンパイルは通り、
>リンクで未解決と出てしまいます。
結局、ヘッダファイルやLIBファイルはあるのでしょうか?
まず、ビルドする時にリンクまで完了させるには、使用する
DLLのエクスポート情報の入った「LIB」ファイルとヘッダファイル
が必要になります。
LIBファイルが公開されていないDLLで関数の仕様のみが公開されて
いる場合、DLLを動的に読み込む方法を使って関数を呼び出します。
WindowsAPIではLoadLibrary関数とGetProcAddress関数を使って
実装します。
No.1
- 回答日時:
その.dllには.libと.hファイルはありますか。
又は使える関数の定義とかわかっているのでしょうか。
この回答への補足
早速のご返事有難うございます。
下記がHPに載っていた使い方です。
宣言文を色々確かめたのですが、コンパイルは通り、リンクで未解決と出てしまいます。下記の2項がHPに載っていた定義です。
DLLはsystem、system32、及びカレントディレクトリに置いてます。
宜しくお願い致します。
1.エクスポート関数定義
下記にC関数としてのエクスポート関数を示します
Long fft1dim( long number, //データ数
double dt //サンプリング間隔
double* re, //実数データ
double* im, //虚数データ
long process, //処理分岐フラグ
long window, //ウィンドウ関数フラグ
double LowFrq, //バンドパス時最低周波数
double HighFrq //バンドパス時最高周波数
)
2.VBによるインポート宣言
下記にVBによる関数のインポート宣言を示します
(VBでの宣言はこのreadme.txtの最後の付録を使用すると便利です)
declare function fft1dim lib "CalFFT.DLL" ( byval data_number as long,
byval dt as double,
re as double,
im as double,
byval process as long,
byval window as long,
byval LowFrq as double,
byval HighFrq as double
) as Long
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- フリーソフト cygewf-2.dllがない、と表示され、ダウンロードしたファイルが動作しない 2 2023/03/27 11:05
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- その他(OS) OBSが起動できません 3 2022/03/30 12:21
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- Java EclipseとVisual StudioをPC1台にインストールしただけではPCは重くならない? 3 2022/12/08 15:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
C言語を実行すると-infが出てき...
-
テイラー展開(C言語)
-
C言語 関数プロトタイプ宣言の...
-
float型とdouble型の変数の違い...
-
c言語で、繰り返し文の中で、0....
-
至急です! マクロ定義で #defi...
-
c言語のコンパイルエラー canno...
-
C 開放してるのにエラー(doubl...
-
指数形式で入力するには
-
doubleは常に%lfとするべきなのか
-
long doubleの表示方法
-
C言語でのsinxのマクローリン展...
-
処理時間計測
-
1円、2円、3円・・・と貯金...
-
計算速度をはやくするには
-
線形補間
-
ニュートン法
-
C言語で-23乗を取り扱うには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
C 開放してるのにエラー(doubl...
-
Cで3乗根を求める方法
-
float型とdouble型の変数の違い...
-
至急です! マクロ定義で #defi...
-
C言語の型による処理速度の違い
-
int とdoubleの比較
-
関数におけるif文とreturn文に...
-
C言語初心者 構造体 課題について
-
c言語のコンパイルエラー canno...
-
C言語 関数プロトタイプ宣言の...
-
C言語を実行すると-infが出てき...
-
float?数字の後にLがつくもの
-
数値を指数部と仮数部に分離したい
-
difftime()について
-
浮動小数点数が表示されないん...
-
たくさんの数の平均を求める方...
-
DWORDの警告
-
-1.#IND00と出てしまうのですが...
おすすめ情報