本文整理汇总了C++中CFunction::Pop方法的典型用法代码示例。如果您正苦于以下问题:C++ CFunction::Pop方法的具体用法?C++ CFunction::Pop怎么用?C++ CFunction::Pop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFunction
的用法示例。
在下文中一共展示了CFunction::Pop方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MarshalRetval
/*
* Manual page at process.def
*/
INT16 CGEN_PUBLIC CProcess::MarshalRetval()
{
CDlpObject* iDto = NULL; // Data transfer object
const SMic* pMic = NULL; // Current method invocation context
CFunction* iCaller = NULL; // Calling function
StkItm* pStkItm = NULL; // Stack item to marshal
// Validate and initialize // ------------------------------------
if (!(pMic = CDlpObject_MicGet(_this))) return -1; // Get method invocation context
iCaller = (CFunction*)CDlpObject_OfKind("function",pMic->iCaller); // Get calling CFunction
if (!iCaller) return -1; // Must be a function!
// Pack second stack element into the CDlpObject on the stack top // ------------------------------------
iDto = iCaller->PopInstance(0); // Get instance on stack top
if (!iDto) return NOT_EXEC; // No instance on stack top --> puuh!
if (iCaller->StackGetLength()==0) return O_K; // Nothing more on the stack --> ok
pStkItm = iCaller->StackGet(0); // Get stack top
Pack(iDto,NULL,pStkItm,PRC_S_RETV); // Pack it as "~iRetv"
iCaller->Pop(0); // Remove stack top
return O_K; // Ok
}