[問題] Run Time選擇Header file的可能?
開發平台(Platform): (Ex: Win10, Linux, ...)
DOS
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
C
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
是否能在Run time時由條件式去決定要include header file?
Compilier time 我沒問題.
原由是我現在開發一個tool要跨Project.
裡面吃了別的部門生成的header file.
只是裡面有的許多相同的define name但給不同的值.
Ex:
Project1.h
#define inputWindow1 0x100
Project2.h
#define inputWindow1 0x200
有沒有類似這樣這樣的做法(語法是錯的, 不要噹我XDD)
if(input == 1)
#include <lib\project1.h>
else
#include <lib\project2.h>
補充說明(Supplement):
我google了C dynamic include header file.
但找了很久都沒有解答.
大多回答#ifdef, 但這是compiler time決定.
看有沒有神人遇過類似的需求.
感謝.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 113.196.154.3
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1476169406.A.5E5.html
推
10/11 15:21, , 1F
10/11 15:21, 1F
現在code就是用#ifdef去吃.
但Run Time執行時, Project1/Project2 就要分二隻檔案跑了.
推
10/11 15:24, , 2F
10/11 15:24, 2F
謝謝, 正在研究中.
推
10/11 15:28, , 3F
10/11 15:28, 3F
呼叫外部程式沒實作過....
或許是條路啦XDD
感謝.
推
10/11 15:48, , 4F
10/11 15:48, 4F
→
10/11 15:48, , 5F
10/11 15:48, 5F
表格化是我想的另一條路.
這幾個Header file都上萬行. 但格式固定.
可以給Editor去處理.
只是現在code 在Project1已經大量引用Project1.h的define.
但表格化要處理一次#define.
一整個沒頭緒.
→
10/11 15:54, , 6F
10/11 15:54, 6F
→
10/11 15:55, , 7F
10/11 15:55, 7F
→
10/11 15:56, , 8F
10/11 15:56, 8F
有想過fprintf從外面讀.
但同上回答, 現在整個頭大.
推
10/11 15:56, , 9F
10/11 15:56, 9F
→
10/11 15:56, , 10F
10/11 15:56, 10F
我就是想了好幾天都無解...
→
10/11 16:06, , 11F
10/11 16:06, 11F
→
10/11 16:07, , 12F
10/11 16:07, 12F
→
10/11 16:08, , 13F
10/11 16:08, 13F
→
10/11 16:10, , 14F
10/11 16:10, 14F
Bingo!!
不過還好這問題都是出在同Function.
因為Spec開的不同, 所以這同名搬家問題會跟著Project跑.
新人時沒想過這問題. 現在新的Project來了真的要搞死我了.
compiler time build 二個tool怕有個問題.
就是user不知道那個Project對那個tool.
勢必得先做個先導的tool..
call外部程式又沒做過.
再google 看看吧.
推
10/11 19:41, , 15F
10/11 19:41, 15F
google一下沒答案.
可能方向錯了~
不過感謝.
推
10/11 20:08, , 16F
10/11 20:08, 16F
google過了, 試了一下好像還是不行.
感謝.
推
10/11 20:51, , 17F
10/11 20:51, 17F
→
10/11 20:51, , 18F
10/11 20:51, 18F
→
10/11 20:51, , 19F
10/11 20:51, 19F
→
10/11 20:51, , 20F
10/11 20:51, 20F
這個好像有點難, 我還沒理解怎麼做.
最近這個Project被Pending住, 回頭再看這麼做.
推
10/11 21:31, , 21F
10/11 21:31, 21F
這個意思不太懂.
是指compiler二隻來做嗎?
是怕User端會有版本的問題.
→
10/11 23:55, , 22F
10/11 23:55, 22F
包一層?
推
10/12 11:47, , 23F
10/12 11:47, 23F
像oo?
推
10/12 13:31, , 24F
10/12 13:31, 24F
剛google一下namespace, 晚點試看看.
→
10/12 14:01, , 25F
10/12 14:01, 25F
推
10/16 00:15, , 26F
10/16 00:15, 26F
Watcom C
→
10/17 00:07, , 27F
10/17 00:07, 27F
我的測試是很硬體底層的東西, DOS管制比較少, 會比較方便.
※ 編輯: viajimmy (113.196.154.3), 10/19/2016 11:14:41