[问题] 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