問題タブ [c-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1263 参照

static-libraries - Cargo で C ライブラリを作成する方法はありますか?

既存のクレートにバインドする (静的) C ライブラリを作成する必要があります。Cargo がこの C ライブラリを作成する方法はありますか?

私はクレート (例: html5ever) を持っており、Cargo にそのクレート用の C-API に基づく C ライブラリを作成してもらいたいと考えています。

0 投票する
0 に答える
1310 参照

python - PyArray_SimpleNewFromData のセグメンテーション違反

C-API を使用して C++ から Python に配列を渡したいと考えています。ここでさまざまなトピックを見て、PyArray_SimpleNewFromData メソッドを使用する必要があることがわかりました。非常に小さな配列に実装しようとすると、コードで検出できないセグメンテーション違反が発生します。誰でもこの問題で私を助けることができますか?

C++ コード:

}

Python コード:

verbose の出力:

0 投票する
1 に答える
216 参照

excel - C# の Interop Range.Value に相当する Excel C API

参照の内容を読み取り、同じ結果と Interop/COM の Range.Value を取得する方法を理解しようとしています...つまり、返されたオブジェクト [,] には文字列、DateTime、および double が含まれています。

私はExcelDNA(および基になるXlCall.Excelを使用してC APIを呼び出します)と両方を使用しています...

ExcelReference.GetValue()XlCall.Excel( XlCall.xlfDeref, reference )

どちらも、object[,]Interop/COM の Range.Value2 と同等の値を返します。つまり、返される object[,] には文字列と double のみが含まれます。

これに関する問題は、日付が double として返され、値が adoubleまたは aであるかどうかを判断する方法がないことDateTimeです。

0 投票する
1 に答える
701 参照

c - Lua C API: エラーソース情報の設定

複数の LUA スクリプトをプレーン テキスト (つまり C 文字列) から取得して実行する単純な LUA オンライン インタープリターを実装しています。すべて正常に動作していますが、これらのスクリプトで構文エラーまたは実行時エラーが発生したときのプログラムの応答をテストしています。

これまでのところ、エラーが発生した場合、呼び出した後lua_pcall、スタック メッセージから次のようなエラーが表示されます。

ここで、LUA のランタイムでトークン[string "..."]を仮想ファイル名 (インタープリターが文字列から LUA コードを取得することを思い出してください) に置き換えて、ユーザーが「my.lua」という名前を使用して仮想スクリプトを送信すると、エラー メッセージが表示されるようにする必要があります。そのスクリプトの LUA のランタイムから生成されたものは、次のようにフォーマットされます。

LUA のソース コードを分析して、LUA インタープリターがこの目的を達成する方法を調べてみました。これまでのところ、私が見つけたのはlua_loadstring()lua_loadfile()後者が「@」で始まるファイルの名前をスタックにプッシュするという点だけです。LUA のソース コードから ( lauxlib.c):

どちらの関数もluaL_loadfilex()luaL_loadstring()を呼び出すことlua_load()になるため、両者の違いは、前者が を呼び出す前に「=stdin」またはファイル名をスタックにプッシュすることlua_load()です。私のコードは を呼び出すだけluaL_loadstring()なので、呼び出す前に仮想ファイル名をプッシュしても同じ効果があると思いましたが、そうではありません。

私はいくつかのポイントを逃していますか?ありがとうございました。

0 投票する
2 に答える
291 参照

mysql - mysql_free_result(res) なしで c でクエリを実行する方法

Commands out of sync; you can't run this command nowエラーが発生しています

0 投票する
0 に答える
316 参照

c - 組み込みプロセッサ向けに Lua を最適化していますか?

16Mhz 32 ビット ARM7TDMI プロセッサと 256Kb RAM (はい、GBA です) を搭載した no-eabi デバイスのプログラムに Lua を埋め込んでいます。現在、問題なく動作しており (私の質問に答えてくれた StackOveflow ユーザーに感謝します)、簡単なタスクを実行していますが、全体的な効率を達成するためにどのような最適化を行うことができますか? ここに私の考えのいくつかがあります:

  • 現在、Lua コードを定数 char 配列として保存しています (最大 32Mb の別の ROM があるため、RAM を解放するのに役立ちます)。実行したいときは、この文字列を Lua スタックにプッシュして「pcall」するだけです。しかし、私が知っているように、Lua はそのコードを RAM のバイトコードにビルドします。大きなLuaファイルでも問題になる可能性があると思います。そのバイトコードをプリコンパイルして定数コンテナにも保存する方法はありますか?

  • Lua を実行するには、THUMB と ARM のどちらの asm コマンド セットが適していますか?

編集: たぶん、バニラ Lua を LuaJIT に変更しますか? 私が知っているように、LuaJIT には多くのアセンブリ行のコードがあります (移植性が低くなります)。古い ARM7 プロセッサへのビルドを成功させるチャンスはありますか?