草庐IT

HK_EXTERN

全部标签

windows - 为什么 Windows 函数在 D extern 中?

在WinAPIexample里面对于D,我注意到它的很多函数都被“标记”为extern。为什么是这样?这些函数显然不是extern。 最佳答案 extern关键字指定链接。WinMain必须具有外部链接,以便可以从模块外部访问它。它还指定(在括号中)调用方法时使用的调用约定。这称为LinkageType.详细信息可以在InterfacingtoC-DProgrammingLanguage找到. 关于windows-为什么Windows函数在Dextern中?,我们在StackOverfl

windows - 导出符号时必须指定 extern "C"吗?

我想知道extern"C"是否必须? 最佳答案 只有当你想从C(或不同的C++编译器,你应该像C一样对待)调用你的代码时。就是禁用name-mangling.请参阅这篇关于C++常见问题解答的文章:http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html 关于windows-导出符号时必须指定extern"C"吗?,我们在StackOverflow上找到一个类似的问题: https://stacko

windows - 为什么 extern "C"在以下情况下仍然无法删除名称修改

extern"C"{__declspec(dllexport)LRESULTCALLBACKMTest}使用depends,我发现即使使用extern"C"仍然存在名称重整。 最佳答案 使用__declspec(dllexport)获得真正未修饰的名称的唯一方法是使用__cdecl调用约定导出它们。CALLBACK变为__stdcall,它使用前导_和尾随@bytes修饰名称的“C”形式。否则您可以使用.DEF文件,这很麻烦。另一种MSVC特定方法是嵌入/EXPORT指令进入目标文件(或将其作为显式链接器设置传递)#pragmaco

c - 如何调用 C extern 函数并获取返回结构?

我在token.c中定义了一个extern函数和一个struct:#include"stdio.h"typedefstructtoken{intstart;intlength;}t;externtget_token(int,int);tget_token(ints,intl){printf("[C]newtoken:start[%d]length[%d]\n\n",s,l);tm_T={};m_T.start=s;m_T.length=l;returnm_T;}...这样我就可以从程序集中调用_get_token并获取新token。在make_token.asm我有以下内容:SECTI

c++ - Windows 中的 C++ 何时需要 "extern C "?

我们知道可以在c++中直接使用c函数,那什么时候需要extern"C"呢? 最佳答案 如果您的函数是在.c文件中实现的,则.cpp文件将需要extern"C"引用,否则它们将引用一个损坏的C++样式函数名称,并且链接将失败。从DLL中导出函数也很方便,这样它们就可以以未损坏的名称导出。 关于c++-Windows中的C++何时需要"externC"?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

ios - 类中的 extern NSString *const。

您好,我有这个头文件:#import@interfacePCConstants:NSObjectexternNSString*constkPCUserProfileKey;externNSString*constkPCUserProfileNameKey;externNSString*constkPCUserProfileFirstNameKey;externNSString*constkPCUserProfileLocationKey;externNSString*constkPCUserProfileGenderKey;externNSString*constkPCUserProf

c++ - 为什么 Apple 的 Clang(来自 Xcode 5)为 arm64 制作 typeinfos private_extern?

如果编译这个文件p3.cxx:classfoobarclass{public:inti0;};voidotherfun(void);voidmumble(void);voidfun(void){try{otherfun();}catch(foobarclass&e){mumble();}}像这样:xcrunclang++-archarm64-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk-fexceptions-cp

python - 我如何在 Python 中使用外部变量,例如 C 中的 'extern int x;'?

如何在Python中使用外部变量,例如在C中使用externintx;?例如,ma​​in1.py:frommyfuncimportprint_aa=10printaprint_a()myfunc.py:defprint_a():globalaprinta 最佳答案 只需重新分配模块中的变量:importmyfuncfrommyfuncimportprint_aa=10printamyfunc.a=aprint_a()否则不可能。请记住,python处理模块的方式与C完全不同。python中的import不在那个地方“复制文件的内容

ios - objective-C : #define vs extern const

我知道以前有人问过这个问题,但我似乎无法在Apple的文档中找到有关它的信息;也许你们中的一些人做到了。许多Objective-C代码在.h文件中有跨文件常量,使用#define。其他人使用带有常量的.m方法,并在.h文件中extern它们。我理解优缺点的区别,但Apple是否说明在iOS开发中使用哪一个? 最佳答案 在extern上使用#defines的问题在于编译器不会进行任何类型检查。如果你#define一个字符串,没有什么可以阻止你在你真正想要的地方使用它,比如说,一个数字。如果您改用静态NSString,如果您尝试在不期望

go - 为什么 GoLang Extern.go 使用 1+skip-1?

在GoLang源代码中https://golang.org/src/runtime/extern.go在第179行,有一个表面上没有意义的函数调用。1+skip-1的副作用是什么导致Go作者编写这个而不是简单地在函数调用中使用skip?ifcallers(1+skip-1,rpc[:]) 最佳答案 参见Issue26437.thischange中的代码由1+skip改为1+skip-1.代码本可以更改为仅skip,但事实并非如此。在thischange中删除了额外的+1-1. 关于go-