忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024年04月29日16:02 】 |
DLLの作成方法② VC++6編
試行錯誤の個人的DLL作成の仕方。(VC6)
文字列を渡す、受ける(参照渡し)
 
 
(1)新規プロジェクト->「Win32 Dynamic-Link Library」
  (プロジェクト名に適当な名前を記入。例:test)->空のDLL
(2)新規プロジェクト->「C++ ソース ファイル」->
  (プロジェクト名に適当な名前を記入。例:test.cpp)
 
 
---(test.cpp)---------------------------------V----------------------
#include <windows.h>
#include <stdio.h>
#include <string.h>
 
extern "C" __declspec(dllexport)
BSTR WINAPI test(LPCSTR a,LPCSTR b){
     FILE *fout=fopen("Shellex.txt","w");
 
     fprintf(fout,">%s,%s\n",a,b);
     fprintf(fout,">%s",b);
     fclose(fout);
     
return SysAllocStringByteLen(b,strlen(b));
     
}
----------------------------------------------A----------------------
解説:
    --
    LPCSTRの他に、LPTSTR有り詳しい説明は調べていない。
  --
  参照渡し、BSTR WINAPI
   値渡し、void WINAPI
    --
  SysAllocStringByteLen
  で文字を渡す。これを使用しない場合、空白になった。
    --
 
 
(3)新規プロジェクト->「テキストファイル」->
  (プロジェクト名に適当な名前を記入。例:test.def)
---(test.def)---------------------------------V----------------------
;test.def :DLL用のモジュール パラメータ宣言
LIBRARY "test"
DESCRIPTION "Dynamic Link Library"
 
EXPORTS
test  @2
----------------------------------------------A----------------------
解説:
関数を以下のように追加していく。
EXPORTS
test  @2
fnc1  @3
hoge  @4
 
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
以上がVCの記述VBで以下のようにする。
---(form1.frm)---------------------------------V----------------------
Private Sub Command1_Click()
   
   Form1.Caption = Shellex(Text2.Text, Text1.Text)
   
End Sub
----------------------------------------------A----------------------
 
---(Module1.bas)---------------------------------V----------------------
Declare Function Shellex Lib "TmShell.dll" _
  (ByVal a As String, ByVal b As String) As String
----------------------------------------------A----------------------
値渡し
 Declare Function Shellex Lib "TmShell.dll" _
  (ByVal a As String, ByVal b As String) 
参照渡し
 Declare Function Shellex Lib "TmShell.dll" _
  (ByVal a As String, ByVal b As String) As String
 
 
 
 
注意、VBのString型は2バイト。
  (ヘッダ、文字列の長さ)|(2バイト・・・)|NULL
 
 
 
 
PR
【2012年04月30日08:10 】 | 未選択 | コメント(0)
コメントの投稿













前ページ | ホーム | 次ページ

忍者ブログ [PR]