作者makkapakka (麻卡巴卡)
看板C_and_CPP
标题[问题] DLL的标头档组建出问题
时间Sat Nov 16 23:17:31 2019
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1573917456.A.B11.html
1F:推 LPH66: 猜一个: 在标头档 #include <stdio.h> 试试?11/17 04:10
直接在标头档上加吗?因为本体有include了
等会来试试
※ 编辑: makkapakka (126.2.165.241 日本), 11/17/2019 09:24:48
2F:→ petercoin: extern C後面不是接一组大括号{}吗? 11/17 14:34
3F:推 Bencrie: 没大括号就写很多次而已 11/17 19:12
4F:→ Bencrie: 然後 C 没有 extern "C" 可以用,那是 C++ 的语法 11/17 19:13