node.js 调用c动态库,选用哪种方法好

JavaScript08

node.js 调用c动态库,选用哪种方法好,第1张

2种方法。 一种编程的时候,直接include库文件. 编好的程序使用时为操作系统直接调用。 二种为编程的时候,使用LoadLibrary,FreeLibrary,GetProcAddress来动态装载程序。则编好的程序使用库文件时,是程序自己主动载入。

脚本执行的基础是WEB控件,

那么C++在WINDOWS下运行可以装入WEB控件实现脚本调用。

下面是一段引用某位博主的代码可以参考一下。

// vcJscript.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#import "C:/windows/system32/msscript.ocx" // msscript.ocx

using namespace MSScriptControl

#include <fstream>

#include <string>

using namespace std

int _tmain(int argc, _TCHAR* argv[])

{

HRESULT hr = CoInitialize(NULL) //使用一个变量初始化COM设置,单线程运行

IScriptControlPtr pScriptControl(__uuidof(ScriptControl))//初始化脚本控件

pScriptControl->Language = "JavaScript"//设置语言

pScriptControl->AllowUI = TRUE//设置显示

fstream file//文件流用于读出JS代码

file.open( "test.js" )

string strFileContent, strTemp

char szTemp[1024]=""

do

{

file.read(szTemp, 1024)

strFileContent.append( szTemp )//拼接JS文件

memset( szTemp, 0, 1024 )

}

while ( !file.fail() )

file.close()

pScriptControl->AddCode(strFileContent.c_str())//向控件加入代码

VARIANT A = pScriptControl->Eval("main(4)")//获取返回值

int iRet = A.intVal

return 0

}