C++入門/プリコンパイル済みヘッダを使用する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
''[[FrontPage]]''
* visual studioでプリコンパイル済みヘッダを作成・使用する...
[[C++/Tk/Tcl拡張/Visual StudioでDLLを作成:http://bj006.co...
プロジェクトの規模が大きくなるにつれ、コンパイルにかかる...
~
多くのファイルをインクルードする、滅多に変更が入らない、...
** 制約事項 [#va5611bf]
visual studioで開発することを前提とする。~
~
~
#ref(http://bj006.com/images/c++_tcl_dll_090502_05.png)
#ref(http://bj006.com/images/c++_tcl_dll_090502_06.png)
#ref(http://bj006.com/images/c++_tcl_dll_090502_07.png)
ファイル名:StyleDll.h
#ifndef STYLE_DLL ...
#define STYLE_DLL ...
...
#define USE_TCL_STUBS 1 ...
...
extern "C" ...
{ ...
__declspec( dllexport ) s4 Dlltest_Init( Tcl_Interp*...
} ...
...
#endif ...
ファイル名:StyleDll.cpp
#include "X:\XXXXX\XXXXXX\XXXXXXXX\pch.h" ...
#include "./StyleDll.h" ...
...
/* DLL Test ********************************************...
static s4 dllTest( ClientData clientData, ...
Tcl_Interp *interp, ...
s4 objc, ...
Tcl_Obj * CONST objv[] ) ...
{ ...
s4 rntCod = TCL_OK; ...
...
Tcl_AppendResult( interp, ...
objv[ZERO]->bytes, ...
" is called. arg1 is ", ...
objv[ONE]->bytes, NULL ); ...
...
return( rntCod ); ...
} ...
//*DLL Test ********************************************...
/* Initialize DLL Test *********************************...
s4 Dlltest_Init( Tcl_Interp *interp ) ...
{ ...
s4 rntCod = TCL_OK; ...
...
for( ; ; ) ...
{ ...
if( NULL == Tcl_InitStubs( interp, "8.1", ZERO )...
{ ...
rntCod = TCL_ERROR; ...
break; ...
} ...
...
Tcl_CreateObjCommand( interp, "Dlltest", dllTest...
} ...
...
return( rntCod ); ...
} ...
//*Initialize DLL Test *********************************...
ファイル名:pch.cpp
#include "X:\XXXXX\XXXXXX\XXXXXXXX\pch.h" ...
...
ファイル名:pch.h
#include "./comm.h" ...
ファイル名:comm.h
#ifndef COMM_H ...
#define COMM_H ...
...
//#pragma comment( lib, "wsock32.lib" ) ...
#pragma comment( lib, "tcl85.lib" ) ...
#pragma comment( lib, "tk85.lib" ) ...
...
#include <tchar.h> ...
#include <tcl.h> ...
//#include <winsock.h> ...
#include <winsock2.h> ...
#include <windows.h> ...
//#include <commdlg.h> ...
#include <stdio.h> ...
#include <fstream> ...
#include <iostream> ...
#include <string> ...
//#include <vector> ...
//#include <sstream> ...
#include <wchar.h> ...
#include <stdlib.h> ...
//#include <boost/regex.hpp> ...
//#include <stdarg.h> ...
...
//#using <mscorlib.dll> ...
...
using namespace std; ...
//using namespace boost; ...
...
//extern HINSTANCE vc_hInst; ...
//extern HWND vc_hWnd; ...
...
...
#define PROC_NG (-1) ...
#define FUNC_NG_NEGATIVE (-1) ...
#define FUNC_NG 0 ...
#define END_MSG 0 ...
#define PROCESS_OK 0 ...
#define RET_OK 0 ...
#define RET_NG (-1) ...
#define WND_HEIGHT 350 ...
#define WND_WIDTH 570 ...
#define IND_TRUE 1 ...
#define IND_FALSE 0 ...
#define ZERO 0 ...
#define ONE 1 ...
#define MINUS_ONE (-1) ...
#define FFFF 65535 ...
#define FF 255 ...
#define IND_DUM (-8) ...
...
...
#define MAX_F_NAME 260 ...
...
...
//#define SCRN_POS_X 50 ...
//#define SCRN_POS_Y 50 ...
...
typedef bool b0; ...
typedef unsigned char u1; ...
typedef signed char s1; ...
typedef unsigned int u4; ...
typedef signed int s4; ...
typedef long f4; ...
typedef double f8; ...
typedef unsigned short u2; ...
typedef signed short s2; ...
typedef int Tcl_PackageInitProc( Tcl_Interp *interp ); ...
...
const f8 ROUND_OFF_RATE = (0.5); ...
...
//#include "./StyleDll.h" ...
...
//using namespace dNet; ...
...
...
#endif ...
*** 修正履歴 [#a6333136]
~
*** 課題 [#x60ff481]
いまいち理解しきれてないけど、速くなったからいいや。~
~
~
-備考~
~
*** 参考ページ [#b7c15f99]
終了行:
''[[FrontPage]]''
* visual studioでプリコンパイル済みヘッダを作成・使用する...
[[C++/Tk/Tcl拡張/Visual StudioでDLLを作成:http://bj006.co...
プロジェクトの規模が大きくなるにつれ、コンパイルにかかる...
~
多くのファイルをインクルードする、滅多に変更が入らない、...
** 制約事項 [#va5611bf]
visual studioで開発することを前提とする。~
~
~
#ref(http://bj006.com/images/c++_tcl_dll_090502_05.png)
#ref(http://bj006.com/images/c++_tcl_dll_090502_06.png)
#ref(http://bj006.com/images/c++_tcl_dll_090502_07.png)
ファイル名:StyleDll.h
#ifndef STYLE_DLL ...
#define STYLE_DLL ...
...
#define USE_TCL_STUBS 1 ...
...
extern "C" ...
{ ...
__declspec( dllexport ) s4 Dlltest_Init( Tcl_Interp*...
} ...
...
#endif ...
ファイル名:StyleDll.cpp
#include "X:\XXXXX\XXXXXX\XXXXXXXX\pch.h" ...
#include "./StyleDll.h" ...
...
/* DLL Test ********************************************...
static s4 dllTest( ClientData clientData, ...
Tcl_Interp *interp, ...
s4 objc, ...
Tcl_Obj * CONST objv[] ) ...
{ ...
s4 rntCod = TCL_OK; ...
...
Tcl_AppendResult( interp, ...
objv[ZERO]->bytes, ...
" is called. arg1 is ", ...
objv[ONE]->bytes, NULL ); ...
...
return( rntCod ); ...
} ...
//*DLL Test ********************************************...
/* Initialize DLL Test *********************************...
s4 Dlltest_Init( Tcl_Interp *interp ) ...
{ ...
s4 rntCod = TCL_OK; ...
...
for( ; ; ) ...
{ ...
if( NULL == Tcl_InitStubs( interp, "8.1", ZERO )...
{ ...
rntCod = TCL_ERROR; ...
break; ...
} ...
...
Tcl_CreateObjCommand( interp, "Dlltest", dllTest...
} ...
...
return( rntCod ); ...
} ...
//*Initialize DLL Test *********************************...
ファイル名:pch.cpp
#include "X:\XXXXX\XXXXXX\XXXXXXXX\pch.h" ...
...
ファイル名:pch.h
#include "./comm.h" ...
ファイル名:comm.h
#ifndef COMM_H ...
#define COMM_H ...
...
//#pragma comment( lib, "wsock32.lib" ) ...
#pragma comment( lib, "tcl85.lib" ) ...
#pragma comment( lib, "tk85.lib" ) ...
...
#include <tchar.h> ...
#include <tcl.h> ...
//#include <winsock.h> ...
#include <winsock2.h> ...
#include <windows.h> ...
//#include <commdlg.h> ...
#include <stdio.h> ...
#include <fstream> ...
#include <iostream> ...
#include <string> ...
//#include <vector> ...
//#include <sstream> ...
#include <wchar.h> ...
#include <stdlib.h> ...
//#include <boost/regex.hpp> ...
//#include <stdarg.h> ...
...
//#using <mscorlib.dll> ...
...
using namespace std; ...
//using namespace boost; ...
...
//extern HINSTANCE vc_hInst; ...
//extern HWND vc_hWnd; ...
...
...
#define PROC_NG (-1) ...
#define FUNC_NG_NEGATIVE (-1) ...
#define FUNC_NG 0 ...
#define END_MSG 0 ...
#define PROCESS_OK 0 ...
#define RET_OK 0 ...
#define RET_NG (-1) ...
#define WND_HEIGHT 350 ...
#define WND_WIDTH 570 ...
#define IND_TRUE 1 ...
#define IND_FALSE 0 ...
#define ZERO 0 ...
#define ONE 1 ...
#define MINUS_ONE (-1) ...
#define FFFF 65535 ...
#define FF 255 ...
#define IND_DUM (-8) ...
...
...
#define MAX_F_NAME 260 ...
...
...
//#define SCRN_POS_X 50 ...
//#define SCRN_POS_Y 50 ...
...
typedef bool b0; ...
typedef unsigned char u1; ...
typedef signed char s1; ...
typedef unsigned int u4; ...
typedef signed int s4; ...
typedef long f4; ...
typedef double f8; ...
typedef unsigned short u2; ...
typedef signed short s2; ...
typedef int Tcl_PackageInitProc( Tcl_Interp *interp ); ...
...
const f8 ROUND_OFF_RATE = (0.5); ...
...
//#include "./StyleDll.h" ...
...
//using namespace dNet; ...
...
...
#endif ...
*** 修正履歴 [#a6333136]
~
*** 課題 [#x60ff481]
いまいち理解しきれてないけど、速くなったからいいや。~
~
~
-備考~
~
*** 参考ページ [#b7c15f99]
ページ名: