回答編集履歴
1
ソースコード全文を掲載
test
CHANGED
@@ -12,15 +12,21 @@
|
|
12
12
|
|
13
13
|
```c
|
14
14
|
|
15
|
+
#include <stdio.h>
|
16
|
+
|
17
|
+
|
18
|
+
|
15
|
-
|
19
|
+
#include <Python.h>
|
20
|
+
|
21
|
+
|
16
22
|
|
17
23
|
void set_path(void) {
|
18
24
|
|
19
|
-
PyObject *sys = PyImport_ImportModule("sys");
|
25
|
+
PyObject *sys = PyImport_ImportModule("sys");
|
20
26
|
|
21
27
|
PyObject *sys_path = PyObject_GetAttrString(sys, "path");
|
22
28
|
|
23
|
-
PyObject *dir = PyUnicode_FromString(".");
|
29
|
+
PyObject *dir = PyUnicode_FromString(".");
|
24
30
|
|
25
31
|
PyList_Append(sys_path, dir);
|
26
32
|
|
@@ -28,13 +34,17 @@
|
|
28
34
|
|
29
35
|
|
30
36
|
|
31
|
-
int main(void)
|
37
|
+
int main(void) {
|
32
38
|
|
33
|
-
|
39
|
+
PyObject *pModule, *pTmp;
|
34
40
|
|
35
|
-
|
41
|
+
char *sTmp;
|
42
|
+
|
43
|
+
|
36
44
|
|
37
45
|
Py_Initialize();
|
46
|
+
|
47
|
+
|
38
48
|
|
39
49
|
/* モジュールをimport */
|
40
50
|
|
@@ -44,7 +54,25 @@
|
|
44
54
|
|
45
55
|
|
46
56
|
|
57
|
+
/* pythonで言う pTmp = getattr(pModule, 'func')() みたいな。 */
|
58
|
+
|
59
|
+
pTmp = PyObject_CallMethod(pModule, "func", NULL);
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
/* PyObjectをC言語の型に変換 */
|
64
|
+
|
65
|
+
PyArg_Parse(pTmp, "s", &sTmp);
|
66
|
+
|
67
|
+
printf("%s\n", sTmp);
|
68
|
+
|
69
|
+
|
70
|
+
|
47
|
-
|
71
|
+
Py_Finalize();
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
return 0;
|
48
76
|
|
49
77
|
}
|
50
78
|
|