我有一个C第三方库。标题中有以下功能
bool bSetSelectMenuItemCallback(int( *pFunction )( int* piSelectedIndex, int iItemCount, int iTimeoutSec, const char* pcItemList, const char* pcFormHeader ) );
如何将C ++函数传递给此回调?
此库有ActiveX(ocx)包装器,并且其中包含以下事件
Event SelectMenuItem(string sFormHeader, long lTimeout, long lItemCount,
string sItemList, long plStatus, long plSelectedIndex)
我们可以看到还有另外一个参数plStatus,据我所知,这是int(* pFunction)返回的结果。 您可以使用类似
的方法轻松订阅此活动void Init() {
OcxLib ocx = new OcxLib()
ocx.SelectMenuItem += OnMenu();
}
void OnMenu(string sFormHeader, long lTimeout, long lItemCount,
string sItemList, long plStatus, long plSelectedIndex) {
Console.WriteLine("Inside event");
}
我想做同样的事情,但是直接在C ++中(不使用ocx库)。
答案 0 :(得分:0)
解决
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
var i = 0;
var totalSections = 1; //TODO Set Total number of pages in your form
check = () => {
if (++i > totalSections) {
alert('Thank You for filling up the form');
setTimeout(google.script.host.close, 7);
}
};
</script>
</head>
<body>
<h1>
MASTER FORM
</h1>
<iframe
onload="check()"
referrerpolicy="no-referrer"
sandbox="allow-scripts allow-forms"
src="<?=pubUrl?>?embedded=true"
width="700"
height="520"
frameborder="0"
marginheight="0"
marginwidth="0"
></iframe>
</body>
</html>