自分のC++ベースのPNaClモジュールを何回か構築する方法について、Googleのネイティブクライアントチュートリアルを読んでいます。何とか私は賢くなっていません。メッセージ機能を実装したいのですが。私はPNaClコードの基礎としての.ccファイルには、次のしている、このすべては、グーグルのHello Worldのチュートリアルから取られている:私はPNaClモジュールは、main()関数を使用していません理解したよう古いC++コードをPNaClモジュールに組み込む
#include "ppapi/cpp/instance.h"
#include "ppapi/cpp/module.h"
#include "ppapi/cpp/var_array.h"
#include "ppapi/cpp/var.h"
namespace {
// The expected string sent by the browser.
const char* const kHelloString = "hello";
// The string sent back to the browser upon receipt of a message
// containing "hello".
const char* const kReplyString = "hello from NaCl";
} // namespace
class job1Instance : public pp::Instance {
public:
explicit job1Instance(PP_Instance instance): pp::Instance(instance) {}
virtual ~job1Instance() {}
virtual void HandleMessage(const pp::Var& message) {
if (!message.is_string()) {
return;
}
std::string message_txt = message.AsString();
pp::Var reply;
if (message_txt == kHelloString) {
reply = pp::Var(kReplyString);
PostMessage(kReplyString);
}
}
};
class job1 : public pp::Module {
public:
job1() : pp::Module() {}
virtual ~job1() {}
virtual pp::Instance* CreateInstance(PP_Instance instance) {
return new job1Instance(instance);
}
};
namespace pp {
Module* CreateModule() {
return new job1();
}
} // namespace pp
のは、私は私のPNaClモジュールで使用する乱数で2つの配列unsorted1
とunsorted2
を作成し、古いC++のコードを持っているとしましょう:
#include <iostream>
#include <stdint.h>
#include <unistd.h>
#include <array>
// a function to create a random number between min and max
int32_t rangeRandomAlg (int32_t min, int32_t max) {
int32_t num = max - min + 1;
int32_t remainder = RAND_MAX % num;
int32_t x;
do {
x = rand();
} while (x >= RAND_MAX - remainder);
return min + x % num;
}
// a function to create arrays with random numbers
void unsortedArrays(int32_t unsorted1[], int32_t unsorted2[],int32_t arrayElements, int32_t minNum, int32_t maxNum){
for(int32_t i = 0; i <= arrayElements; i++) {
if (i < arrayElements/2) {
unsorted1[i] = rangeRandomAlg(minNum, maxNum);
} else {
unsorted2[i] = rangeRandomAlg(minNum, maxNum);
}
}
}
// the main function
int32_t main(int32_t argc, char *argv[]) {
// declare all the zises
int32_t minNum = 0;
int32_t maxNum = 100;
int32_t arrayElements = maxNum;
// the arrays
int32_t unsorted1[arrayElements/2];
int32_t unsorted2[arrayElements/2];
// fill the arrays with random numbers
unsortedArrays(unsorted1, unsorted2, arrayElements, minNum, maxNum);
return 0;
}
私の問題は、私は非常に私はこれを統合する方法を理解していなかったということですコードをPNaClモジュールに入力し、HandleMessage()
関数を使用してunsorted1
とを送信しますアレイは、PostMesage()
機能を使用してJavaScript
に戻ります。私はHandleMessage()
機能の配列ではなく文字列で作業しなければならないことを知っています。
私は本当にこのネイティブクライアントの事を初めて知っているので、ここで助けを得ることを望みます。
本当に手掛かりはありませんか? – TalG