gpt4 book ai didi

c++ - 如何摆脱警告 C4518 : storage-class or type specifier(s) unexpected here; ignored

转载 作者:行者123 更新时间:2023-11-28 07:29:17 25 4
gpt4 key购买 nike

我继承了一个旧的 C++ DLL 项目。它使用 VS 6.0 编译。

这是一个已经工作多年的东西。

我在构建项目时首先注意到的是一些通常与缺少分号有关的警告,但事实并非如此,请看一下:

头文件中的警告:

someproject\include\somefile.h(27) : warning C4518: '__declspec(dllexport) ' : storage-class or type specifier(s) unexpected here; ignored

代码:

#ifdef __cplusplus
extern "C" {
#endif
VOID DLLExport WINAPI func1 (unsigned char *c, SHORT b, BOOL bIsChar, SomeTask* spTask);

VOID DLLExport WINAPI func2 (unsigned char *c, SHORT b, BOOL bIsChar, SomeTask* spTask);
PBYTE DLLExport WINAPI func3 (PBYTE cpStr, BYTE cCh);
SomeTask* DLLExport WINAPI TaskPtr(VOID); // <- Ofending line

cpp文件中的警告:

someproject\somecode.cpp(3264) : warning C4518: '__declspec(dllexport ) ' : storage-class or type specifier(s) unexpected here; ignored

代码:

extern "C" SomeTask* DLLExport WINAPI TaskPtr(VOID)
{
blah();
blah();

类(class)代码:

class SomeTask
{
public:
SomeTask(){}
etc

最佳答案

该消息似乎暗示 dllexport(winapi) 是一种语言扩展,其行为类似于存储类或类型说明符。这些术语可以以任何顺序出现,但通常存储类出现在类型之前:我们说 static int 而不是 int static。此代码使用了不寻常的顺序,并且显然不受旧编译器的支持。但在这种情况下,除非您构建 DLL,否则这无关紧要。

关于c++ - 如何摆脱警告 C4518 : storage-class or type specifier(s) unexpected here; ignored,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18027010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com