Je voulais créer une dll pour utiliser une fonction écrite en C à partir de Python dans ctypes, mais j'ai eu du mal

Aperçu

Quand j'ai cherché à partir de Python pour vouloir utiliser une fonction écrite en C, je suis arrivé à la conclusion que ctypes semble être pratique cette fois, mais quand je suis resté coincé dans la première étape (création de dll ~ lire avec python) Remarque.

La page à laquelle j'ai fait référence lorsque ctypes

http://flow-developers.hatenablog.com/entry/2017/12/19/075319

environnement

Windows10 (64bit) Anaconda 64bit (Python 3.6.4) Cygwin -gcc -shared hoge.c -o hoge.dll Du côté python, le fichier dll créé dans lib=ctype.CDLL("hoge.dll") Cependant, une erreur est que python ne trouve pas la DLL. J'ai essayé Cygwin sans aucune utilité, mais cela n'a certainement pas fonctionné. MinGW64 Bien que la DLL puisse être trouvée [WinError 193] %1 is not a valid Win32 application DLL Erreur. Python est 64 bits, MinGW est également 64 bits, pourquoi. .. Ensuite, on a découvert que le gcc de mingw était 32 bits. .. .. Visual Studio 2017 Je n'avais pas d'autre choix que d'utiliser VS. (Invite de commandes X86_x64 Cross Tools pour Visual Studio 2017.)

cl /LD hoge.c

Un fichier dll est généré sans difficulté! Il peut désormais être lu côté Python. Je suis heureux.

Recommended Posts

Je voulais créer une dll pour utiliser une fonction écrite en C à partir de Python dans ctypes, mais j'ai eu du mal
J'ai eu du mal avec l'erreur d'importation: le chargement de la DLL a échoué dans tensorflow 2.0
[Python] Comment appeler une fonction de c depuis python (édition ctypes)
Je veux créer une fenêtre avec Python
Je voulais utiliser la bibliothèque Python de MATLAB
Je veux travailler avec un robot en python.
J'ai eu du mal à essayer d'accéder à Hadoop3.0.0 depuis un navigateur (et ArchLinux)
Créer une fonction en Python
J'ai essayé de créer une API list.csv avec Python à partir de swagger.yaml
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
J'ai créé un package pour filtrer les séries chronologiques avec python
Pour renvoyer char * dans une fonction de rappel à l'aide de ctypes en Python
[C / C ++] Passez la valeur calculée en C / C ++ à une fonction python pour exécuter le processus et utilisez cette valeur en C / C ++.
J'ai essayé de créer un générateur qui génère une classe conteneur C # à partir de CSV avec Python
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
J'ai essayé de créer une fonction pour juger si les principaux stocks du monde sont l'heure d'été avec python
Une histoire que je voulais faire une fonction comme before_action utilisée dans les rails avec django [Débutant apprend python avec un livre de référence]
Une histoire que j'ai eu du mal en essayant de créer une "application qui convertit des images comme des peintures" avec la première application Web
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
Je voulais créer une présentation intelligente avec Jupyter Notebook + nb present
J'ai essayé de créer une liste de nombres premiers avec python
J'ai écrit une fonction pour charger le script d'extension Git en Python
Je voulais résoudre le problème ABC164 A ~ D avec Python
Passer la liste de Python vers C ++ par référence dans pybind11
Je voulais utiliser le notebook jupyter avec docker dans l'environnement pip (opticspy)
[Python] Explique comment utiliser la fonction range avec un exemple concret
J'ai essayé de créer un programme qui convertit les nombres hexadécimaux en nombres décimaux avec python
Créez un outil qui secoue automatiquement furigana avec html en utilisant Mecab de Python3
Utilisez Python de Java avec Jython. J'étais aussi accro.
C'est plus récent, mais je voulais essayer le calcul de l'IMC avec python.
Connectez-vous à postgreSQL depuis Python et utilisez des procédures stockées dans une boucle.
[Outlook] J'ai essayé de créer automatiquement un e-mail de rapport quotidien avec Python
Un mémorandum parce que j'ai trébuché en essayant d'utiliser MeCab avec Python
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Créer un décorateur de fonction Python avec Class
Je veux utiliser jar de python
Je voulais résoudre ABC160 avec Python
Je voulais résoudre ABC159 avec Python
Utilisation des fonctions C ++ de python avec pybind11
Je voulais résoudre ABC172 avec Python
Je voulais utiliser le module de recherche d'Ansible2, mais cela a pris du temps, alors prenez note
Je voulais faire un programme de notation polonaise inversée en Python (détermination de savoir si une chaîne de caractères peut être convertie en valeur numérique)
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
Quand j'ai essayé de créer un environnement virtuel avec Python, cela n'a pas fonctionné
J'ai essayé de créer facilement un système de présence entièrement automatique avec Selenium + Python
J'ai fait un module en langage C qui filtre les images chargées par Python
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
Créez des paramètres dans terraform pour envoyer des messages depuis AWS Lambda Python3.8 vers Slack
Comment utiliser la bibliothèque C en Python
Je veux utiliser MATLAB feval avec python
Comment créer un objet fonction à partir d'une chaîne
Créer un tableau C à partir d'une feuille Python> Excel
Je voulais résoudre NOMURA Contest 2020 avec Python
Comment créer un fichier JSON en Python
Je veux faire un jeu avec Python
Créer un environnement virtuel avec conda avec Python