[問題] DLL的標頭檔組建出問題

看板C_and_CPP (C/C++)作者 (麻卡巴卡)時間5年前 (2019/11/16 23:17), 5年前編輯推噓2(202)
留言4則, 3人參與, 5年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Visual Studio 2017 問題(Question): DLL的標頭檔無法組建 餵入的資料(Input): 作業要求得將自定義函數FILE* fopenText(char* fName, char* mode); 放在DLL檔中 預期的正確結果(Expected Output): 成功組建產出DLL檔 錯誤結果(Wrong Output): 組建失敗 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) (標頭檔) #pragma once extern "C" int getLine(char a[], int sz); extern "C" void linesFree(char *a[], int n); extern "C" int linesRead(char *a[], int max); extern "C" void linesSort(char *a[], int n); extern "C" void linesWrite(char *a[], int n); extern "C" FILE* fopenText(char* fName, char* mode); (fopenText函數) https://ideone.com/1Edt8s 補充說明(Supplement): 大概是不支援自定義的函數類型吧我猜 標頭檔中的 extern "C" FILE* fopenText(char* fName, char* mode); 這句被抓到syntax error: missing ';' before '*' 還有missing type specifier 請問要用哪種type去定義呢? 有試著直接把FILE*改成int或是其他類型 但是結果都是更多錯誤 該函數的內容應該是沒有問題(老師直接給的) 不過以防萬一還是丟了上來 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 126.2.147.139 (日本) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1573917456.A.B11.html

11/17 04:10, 5年前 , 1F
猜一個: 在標頭檔 #include <stdio.h> 試試?
11/17 04:10, 1F
直接在標頭檔上加嗎?因為本體有include了 等會來試試 ※ 編輯: makkapakka (126.2.165.241 日本), 11/17/2019 09:24:48

11/17 14:34, 5年前 , 2F
extern C後面不是接一組大括號{}嗎?
11/17 14:34, 2F

11/17 19:12, 5年前 , 3F
沒大括號就寫很多次而已
11/17 19:12, 3F

11/17 19:13, 5年前 , 4F
然後 C 沒有 extern "C" 可以用,那是 C++ 的語法
11/17 19:13, 4F
文章代碼(AID): #1Tq1CGiH (C_and_CPP)
文章代碼(AID): #1Tq1CGiH (C_and_CPP)