これはできません。どうして?
Windowsは、次の構文を使用して32ビットDLLからエクスポートされた関数を呼び出すことができrundll32.exe
という名前のコマンドラインユーティリティプログラムが含まれています
RUNDLL.EXE <dllname>,<entrypoint> <optional arguments>
しかし、MSDNによると:
Rundll32のプログラムを使用すると、任意のDLLからエクスポートされた任意の関数を呼び出すことはできません
[..]
これらのプログラムでは、明示的に呼び出されるようにDLLから呼び出される関数のみを呼び出すことができます。
dll
はそれをサポートするために、次のプロトタイプをエクスポートする必要があります。
void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hinst,
LPSTR lpszCmdLine, int nCmdShow);
python.dll
は、このようなエントリポイントをエクスポートしませんので、あなたはDLLをロードするC/C++でラッパーアプリケーションを記述する必要があります(ここで、そのようなアプリケーションからの抜粋である)、例えば、それを使用する:
// load the Python DLL
#ifdef _DEBUG
LPCWSTR pDllName = L"python27_d.dll" ;
#else
LPCWSTR pDllName = L"python27.dll" ;
#endif
HMODULE hModule = LoadLibrary(pDllName) ;
assert(hModule != NULL) ;
// locate the Py_InitializeEx() function
FARPROC pInitializeExFn = GetProcAddress(hModule , "Py_InitializeEx") ;
assert(pInitializeExFn != NULL) ;
// call Py_InitializeEx()
typedef void (*PINITIALIZEEXFN)(int) ;
((PINITIALIZEEXFN)pInitializeExFn)(0) ;
FILE* fp ;
errno_t rc = fopen_s(&fp , pFilename , "r") ;
assert(rc == 0 && fp != NULL) ;
[..] // go on to load PyRun_SimpleFile
if (0 == PyRun_SimpleFile(fp , pFilename)
printf("Successfully executed script %s!\n", pFilename);
起源:Awasu.com firstとsecondのチュートリアル
あなたが実行可能ファイルに変換することができ、その後、あなたは窓を使用しているexecution.Ifのための完全なPythonのセットアップをインストールする必要はありませんが.exeの形式に変換します。ビデオをチェックする==> https://www.youtube.com/watch?v=vPzc4OelblQ – rohitjoshi9023