texport(tchar export stub generator) 用於自動生成 tchar 型別程式的 char 和 wchar_t 型別的函式呼叫存根。
當在 windows 下開發程式庫時,使用 tchar 型別,比直接使用 char 和 wchar_t 具有更好的移植性。但是在編寫動態鏈結庫時,不能直接匯出 tchar 型別的函式,給 tchar 型別函式的使用帶來了一些限制。使用 texport 在 .h 檔案中加入特定的標記,texport 能自動生成類似於標準 sdk 不同字符集匯出函式的格式。給使用 tchar 型別編寫動態庫帶來一些便利。
程式的輸入檔案:
乙個使用 texport 規則標記過的 .h 檔案,乙個內建的或使用者指定的轉換規則檔案
程式的輸出檔案:
《輸入檔名》.tim.h
《輸入檔名》.tim.cpp
texport 執行時需要乙個轉換規則檔案,命名為:trans.txt,格式為:
需要轉換的變數型別, 轉換後的wchar版型別, 轉換後的char版型別
例: trans.txt
ptstr, pwstr, pstr
lptstr, lpwstr, lpstr
pctstr, pcwstr, pcstr
lpctstr, lpcwstr, lpcstr
/// test.h
#pragma once
#include
#include
#ifdef driverinstaller_exports
#define driverinstaller_api __declspec(dllexport)
#else
#define driverinstaller_api __declspec(dllimport)
#endif
void mystringlength(lpctstr pszstring);
//%
命令列執行:texport test.h
將輸出:
test.tim.htest.tim.cpp
/// file test.tim.h
#pragma once
#include
#include
#ifdef driverinstaller_exports
#define driverinstaller_api __declspec(dllexport)
#else
#define driverinstaller_api __declspec(dllimport)
#endif
void mystringlength(lpctstr pszstring);
void installdriverw(lpcwstr pszinfpath);
void uninstalldriverw(lpcwstr pszhardwareid);
void installdrivera(lpcstr pszinfpath);
void uninstalldrivera(lpcstr pszhardwareid);
#ifdef _unicode
#define installdriver installdriverw
#define uninstalldriver uninstalldriverw
#else
#define installdriver installdrivera
#define uninstalldriver uninstalldrivera
#endif
//@begin test
#pragma once
#include
#include
#ifdef driverinstaller_exports
#define driverinstaller_api __declspec(dllexport)
#else
#define driverinstaller_api __declspec(dllimport)
#endif
void mystringlength(lpctstr pszstring);
void installdriverw(lpcwstr pszinfpath);
void uninstalldriverw(lpcwstr pszhardwareid);
void installdrivera(lpcstr pszinfpath);
void uninstalldrivera(lpcstr pszhardwareid);
#ifdef _unicode
#define installdriver installdriverw
#define uninstalldriver uninstalldriverw
#else
#define installdriver installdrivera
#define uninstalldriver uninstalldrivera
#endif
//@end
/// file test.tim.cpp
#include "stdafx.h"
#include
.h>
//@begin test
#include
.h>
void installdriverw(lpcwstr pszinfpath)
void uninstalldriverw(lpcwstr pszhardwareid)
void installdrivera(lpcstr pszinfpath)
void uninstalldrivera(lpcstr pszhardwareid)
//@end
python生成器函式 Python 生成器函式
一 生成器 生成器指的是生成器物件,可由生成器表示式得到,也可使用 yield 關鍵字得到乙個生成器函式,呼叫這個函式得到乙個生成器物件 生成器物件,是乙個可迭代物件,是乙個迭代器 生成器物件,是延遲計算 惰性求值的 1.1 生成器函式 函式體重包含 yield 語句的函式,就是生成器函式,呼叫後返...
生成器函式
pyhon優雅的魔力使生成器函式很特殊,它們像定格相機一樣工作。當乙個標準函式遇到return語句時,它會返回值,然後函式會丟棄內部的所有資料。當下次呼叫時,一切從頭開始。yield語句會做不同的事情。它像return一樣返回乙個值,但是它不會使函式丟棄資料,相反所有資料都被儲存起來。usr bin...
生成器函式
什麼是生成器 生成器是能夠動態提供資料的物件,生成器物件也是可迭代物件 例項 生成器有兩種 生成器函式 生成器表示式 生成器函式的呼叫將返回乙個生成器的物件,生成器物件是乙個可迭代物件 defmyyield 此函式為生成器函式 yield 2yield 3yield 5yield 7 此時生成乙個生...