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

作者: makkapakka (麻卡巴卡)   2019-11-16 23:17:31
開發平台(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或是其他類型
但是結果都是更多錯誤
該函數的內容應該是沒有問題(老師直接給的)
不過以防萬一還是丟了上來
作者: LPH66 (-6.2598534e+18f)   2019-11-17 04:10:00
猜一個: 在標頭檔 #include <stdio.h> 試試?
作者: petercoin (彼得幣)   2019-11-17 14:34:00
extern C後面不是接一組大括號{}嗎?
作者: Bencrie   2019-11-17 19:12:00
沒大括號就寫很多次而已然後 C 沒有 extern "C" 可以用,那是 C++ 的語法

Links booklink

Contact Us: admin [ a t ] ucptt.com