#發問 python *.pyd與*.dll一樣嗎?

國立勤益科技大學
由於我是用python開發程式,要將其轉成.dll檔,使用c++來調用dll裡面的函數,但我找的教學,都是將python程式轉成py格式。 我有搜尋pyd如何轉換成dll,都沒有相關的教學,大多都說pyd與dll是相同的,只要改副檔名就好,問AI也是這樣回答,但我改了之後,用以下的程式碼來測試調用dll,都無法成功 用python調用dll: ``` import ctypes # 加载DLL dll_path = "./_first.dll" my_dll = ctypes.CDLL(dll_path) # 調用DLL中的函数 result = my_dll.hello() print("Result:", result) ``` 用c++調用dll: ``` #include <iostream> #include <Windows.h> typedef void (*YourFunctionType)(); int main() { // 加载 DLL HINSTANCE hDLL = LoadLibraryA("_first.dll"); if (hDLL != NULL) { // 获取函数地址 YourFunctionType yourFunction = (YourFunctionType)GetProcAddress(hDLL, "hello"); if (yourFunction != NULL) { // 调用函数 yourFunction(); } else { std::cerr << "Failed to get function address." << std::endl; } // 释放 DLL FreeLibrary(hDLL); } else { std::cerr << "Failed to load DLL." << std::endl; } return 0; } ``` 要轉換的python程式碼: ``` def hello(): print("Hello World!") ``` 這兩種方法都沒辦法成功調用,都說沒有hello()這個函數,但我使用python調用pyd,是可以正常的調用hello()。 所以想詢問一下,有甚麼方法可以解決這問題? PS:在官方文件也有說明相關的問題(
Like
9
23 comments