teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

ああ

2017/04/18 02:28

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -51,4 +51,8 @@
51
51
  //処理
52
52
  }
53
53
 
54
- ```
54
+ ```
55
+
56
+ ###実現したいこと
57
+ 書いていて自分でもわからなくなってきましたが、
58
+ やりたいことは**ソースコードに手を加えることなく実行する関数を変更する**ということです。

2

2017/04/18 02:28

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,9 +4,51 @@
4
4
 
5
5
  以下テキストファイルの書式です。
6
6
  ```
7
+ Func_Count=1 //実行するfuncの数
7
- Func1="function1"
8
+ Func1="function1" //関数名
8
- Argment1="aaa;bbb"
9
+ Argment1="aaa;bbb" //func1の引数
9
10
  ```
10
11
  テキストの読み込みはapiが提供されているのでダブルクォーとの間の文字列が取得できるようになっています。
11
12
 
12
- 不足情報等ありましたら追記いたします。
13
+ 不足情報等ありましたら追記いたします。
14
+
15
+
16
+ ###現在の実装
17
+ ```main.h
18
+ ...
19
+ typedef int(*function)(std::string* arg);
20
+ std:map<std:string, function> map;
21
+
22
+ static void func1(std::string* arg)
23
+ static void func2(std::string* arg)
24
+ static void func3(std::string* arg)
25
+ ...
26
+ ```
27
+ ```main.cpp
28
+ void main(){
29
+ int count;
30
+ function funcptr[10];
31
+ std:string func_name,arg;
32
+
33
+ map_init();
34
+
35
+ //テキストの読み込み処理を行う
36
+
37
+ for(int i=0; i<count; i++){
38
+ //("Func%d",i)の読み込み
39
+ //("Argument%d",i)の読み込み
40
+ (map[func_name])(&arg)
41
+ }
42
+ }
43
+
44
+ viod map_init(){
45
+ map["func1"]=&func1;
46
+ map["func2"]=&func2;
47
+ map["func3"]=&func3;
48
+ }
49
+
50
+ void func1(std::string* arg){
51
+ //処理
52
+ }
53
+
54
+ ```

1

aaaaa

2017/04/18 02:24

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  以下テキストファイルの書式です。
6
6
  ```
7
7
  Func1="function1"
8
- argment="aaa;bbb"
8
+ Argment1="aaa;bbb"
9
9
  ```
10
10
  テキストの読み込みはapiが提供されているのでダブルクォーとの間の文字列が取得できるようになっています。
11
11