Wednesday 26 July 2017

โหนด ffi ไบนารี ตัวเลือก


ฉันกำลังพยายามเข้าถึงสายเรียกเข้าของ Windows API เฉพาะจากภายในแอ็พพลิเคชัน node. js ผมเชื่อว่าวิธีที่ดีที่สุดในการทำเช่นนี้คือการสร้าง addon extension แบบดั้งเดิมไปยังโหนดที่ฉันต้องการได้ในโปรแกรม node. js และเรียกจาก JavaScript ฉันสามารถหาแหล่งข้อมูลเกี่ยวกับวิธีการรวบรวมข้อมูลปฏิบัติการประเภทนี้ได้อย่างแท้จริงฉันสามารถหาคำแนะนำในการเขียนได้ แต่คำแนะนำในการสร้างทั้งหมดดูเหมือนจะเป็นภาษาลีนุกซ์ ฉันดีกับการรวบรวมผ่าน g on mingw, I dont ต้องใช้ Visual Studio. นอกจากนี้ที่ฉันจะหาไฟล์ส่วนหัวที่ฉันต้องการเพื่อรวบรวมส่วนขยายขอ 8 มีนาคม 12 ที่ 20:36 สำคัญที่ควรทราบ: มีค่าใช้จ่ายที่ไม่สำคัญเล็กน้อยที่เกี่ยวข้องกับสาย FFI เป็น การเปรียบเทียบเวอร์ชัน strtoul () ที่มีการเข้ารหัสแบบ hard-coder กับรุ่น FFI ของ strtoul () แสดงให้เห็นว่าการเชื่อมโยงแบบ hard-coded native ทำได้เร็วกว่า 5 เท่า ดังนั้นอย่าเพิ่งใช้เวอร์ชัน C ของฟังก์ชันเพียงเพราะเร็วกว่า มีค่าใช้จ่ายที่สำคัญในการโทร FFI ดังนั้นทำให้พวกเขาคุ้มค่า กล่าวอีกนัยหนึ่งนี่เป็นเรื่องปกติสำหรับการโทรไปยัง API แบบดั้งเดิมเป็นครั้งคราว แต่ถ้าคุณกำลังทำสายพื้นเมืองจำนวนมากคุณจะต้องเขียน addon ของตัวเองเพื่อหลีกเลี่ยงค่าโสหุ้ยที่สำคัญของโหนด ffi ndash josh3736 มีนาคม 11 12 at 21:53 ฉันผ่านความเจ็บปวดนี้เอง Heres คู่มือที่ช่วยให้ฉันได้รับมันทำงาน (PDF) โปรดจำไว้ว่าตั้งแต่โหนดได้รับการสนับสนุนอย่างเป็นทางการใน Windows แล้ว Visual Studio เป็นเครื่องมือสร้างที่แนะนำสำหรับโหนดใน Windows ดาวน์โหลดและสร้างรหัสแหล่งที่มาของโหนด (ดู PDF) สร้างโซลูชัน VC Win32 ใหม่ใน VS โดยเลือก DLL เป็นประเภทแอ็พพลิเคชันในวิซาร์ดที่ตามมา ตรวจสอบให้แน่ใจว่า ATLMFC ไม่ได้ทำเครื่องหมายไว้ เขียน addon ของคุณ ตัวอย่างเช่น heres หนึ่งฉันเขียนที่ได้รับการตั้งค่า DNS Windows ปัจจุบัน โดยเฉพาะไฟล์การตั้งค่าโครงการ (vcxproj) จะเป็นที่น่าสนใจเนื่องจากส่วนที่ยากที่สุดชิ้นใดที่ได้รับการอ้างอิงถึงห้องสมุดรวมถึงเส้นทางต่างๆ คุณอาจต้องการขอยืม config ของฉันและแทนที่ D: node ด้วยตำแหน่งของ repo โหนดของคุณ ตอบ 8 มี.ค. 12 ที่ 21: 13node-ffi เป็น addon Node. js สำหรับการโหลดและเรียกใช้ไลบรารีแบบไดนามิกโดยใช้ JavaScript บริสุทธิ์ สามารถใช้เพื่อสร้างการผูกกับไลบรารีดั้งเดิมโดยไม่ต้องเขียนรหัส C ใด ๆ นอกจากนี้ยังช่วยลดความยุ่งยากในการเพิ่ม node. js ด้วยโค้ด C เนื่องจากจะจัดการกับการแปลประเภทต่างๆใน JavaScript และ C ซึ่งสามารถเพิ่มรีมรหัส boilerplate เป็น C ของคุณได้ง่ายขึ้นตัวอย่างเช่นกรณีการใช้งานนี้ . คำเตือน โหนด ffi สมมติว่าคุณรู้ว่าคุณกำลังทำอะไร คุณสามารถสร้างสถานการณ์ที่คุณจะ segfault ล่ามและถ้า youve มีทักษะการดีบัก C คุณอาจเคยชินทราบว่าเกิดอะไรขึ้น Linux, OS X, Windows หรือ Solaris libffi มาพร้อมกับโหนด ffi ไม่จำเป็นต้องติดตั้งในระบบของคุณ เวอร์ชันปัจจุบันได้รับการทดสอบเพื่อรันบนโหนด 0.6.x. ถ้าคุณต้องการการสนับสนุนโหนด 0.4.x ให้ใช้สาขา 0.4 ของโหนด ffi ระบบปฏิบัติการที่ได้รับความนิยมมากที่สุดมีไบนารีที่รวบรวมไว้ล่วงหน้าซึ่งมาพร้อมกับโหนด ffi ดังนั้นในช่วงเวลาที่คุณไม่จำเป็นต้องรวบรวมข้อมูลใด ๆ (ยกเว้นกรณีที่คุณต้องการแล้วดูด้านล่าง) แหล่งที่มาการติดตั้งการติดตั้งด้วยตนเองการรวบรวมจากแหล่งที่ง่ายที่สุดในการใช้ node-gyp: การสนทนาที่เกี่ยวข้องห้องสมุด Im โต้ตอบกับการใช้ node-ffi อาจทำให้เกิดปัญหาสำหรับอินพุตบางตัว เมื่อมันไม่ใช้กระบวนการโหนดของฉันกับมัน มีวิธีดักจับสิ่งเหล่านี้และดำเนินการกับสิ่งอื่น ๆ ต่อไปหรือไม่ - สำคัญต้องส่งผลให้เว็บเบราเซอร์หรือต้องออกจากกระบวนการโหนดของฉัน ณ จุดนั้นฉันอาจมีกระบวนการโหนดหลักที่จัดการคำขอเว็บและสร้างโหนดที่สอง กระบวนการที่จะใช้เพื่อน library. hello อินเทอร์เน็ต - เป็นบางส่วนของคุณอาจจะรู้ว่าวันหยุดสุดสัปดาห์ที่ผ่านมาคือ nodeknockout การแข่งขันการเขียนโปรแกรม 48 ชั่วโมง ทีมงานของเรา NYC Nodejitsu Ninjas สร้างโครงการขึ้นมา 2 โครงการ (คิดว่าเราเป็นทีมเดียวที่มี 2 รายการที่ส่ง) ซึ่งมุ่งสู่การเป็นเครื่องมือที่มีประโยชน์สำหรับชุมชน node. js ที่สามารถให้บริการได้อย่างยาวนาน คุณสามารถดูรายการของเรา nodeknockout. Has ทุกคนเริ่ม GIR หรือผูกอื่น ๆ เพื่อ GNOME และ GTK เมื่อเร็ว ๆ นี้ฉันต้องการไปเส้นทาง GIR เนื่องจากความยืดหยุ่นและความสะดวกในการอยู่ถึงวันที่ เท่าที่ฉันสามารถบอกได้เราต้องเป่าฝุ่นออกและติดตั้ง libgirepository หลังจากนั้นก็ใช้งานได้ง่ายโดยใช้ JavaScript Ive เริ่มพื้นที่เก็บข้อมูลที่มีบันทึกย่อ แต่เป็นโครงการที่ Im จะต้อง Nathan ฉันเริ่มต้นใช้โหนด ffi ซึ่งใช้งานได้ดี ฉันต้องสร้าง structs บางดังนั้น Im ใช้ ref-struct. ตอนนี้บางส่วนของโครงสร้างของฉันมีตัวชี้ไปที่ตัวเองเช่นนี้: typedef struct pstblockrecorder นี่คือวันแรกของฉันของการพยายามที่จะใช้โหนด ffi และ Im จะบ้าพยายามที่จะได้รับมันให้ทำงานกับฟังก์ชันที่มีลายเซ็นนี้ int makeData (char data, unsigned int length) ฟังก์ชันนี้จะคืนค่าตัวชี้ไปยังข้อมูลบางส่วนและ int ที่ไม่ได้ระบุว่ามีข้อมูลเป็นจำนวนกี่ไบต์ ข้อมูลอาจเป็นข้อความหรือไบนารี ฉันจะกำหนดฟังก์ชันนี้ในโหนด ffi ชนิดของตัวแปรทำ I. สวัสดี - ฉันทำงานกับ guys ที่ Nodejitsu (githubnodejitsu) เพื่อช่วยเก็บข้อมูลเกี่ยวกับบางส่วนของโครงการโอเพนซอร์สของพวกเขา ขณะนี้ฉันกำลังพยายามรวบรวมรายชื่อ บริษัท และโครงการทั้งหมดที่ใช้โหนด-http-proxy ในการผลิต เราเริ่มต้นใช้งานวิกิพีเดียพื้นฐาน githubnodejitsunode-http-proxywikinode-http-proxy-in-production ที่คุณควรจะเป็นฉันลองใช้วิธีง่ายๆ แต่เกิดข้อผิดพลาดนี้: node learn. js Usersmsmaromilearnnodetrenuppnodemodulesffilibforeignfunction. js: 55 throw e TypeError: ข้อผิดพลาดการตั้งค่าอาร์กิวเมนต์ 0 - writePointer: อินสแตนซ์บัฟเฟอร์ที่คาดว่าจะเป็นอาร์กิวเมนต์ที่สามที่ Object. writePointer (Usersmsmaromilearnnodetrenuppnodemodulesffinodemodulesreflib. I เขียนรหัสที่ใช้ร่วมกันระหว่างเบราเซอร์และโหนดที่พวกเขาทั้งสองต้องทำบางสายลูกค้า http ฉันคิดของการตรวจสอบว่าฉันเป็น ทำงานในเบราว์เซอร์และถ้าวัตถุ JQuery มีอยู่และใช้ jquery. get โพสต์ใส่วิธีถ้าเช่นถ้าทำงานในโหนดผมหวังที่จะเขียน wrapper สไตล์ Jquery รอบโหนด lib client http ดังนั้นรหัสหลักของฉัน wouldnt มี เพื่อ change. with โหนด v0.1.91 underscore. js แม่แบบทำงานได้ดีกับ 0.1.95 หรือ 0.1.96 มันไม่ได้มีจะทำอย่างไรกับการเรียกแม่แบบ - ถ้ารหัส html เป็น substitut ed ใน tmplt. template ทำงานมันทำงานได้ดีหรืออาจเป็นโหนด node-router จัดการกับไฟล์ template นี่คือข้อผิดพลาด: homelibunderscore. js: 15, printfunction () with (obj) สวัสดีทั้งหมดดังนั้นการใช้โมดูล node-cgi ใหม่ของฉันนี่คือตัวอย่างของกระดาษห่อหุ้มรอบไฟล์ gitweb. cgi ฉันเรียกว่า node-gitweb0 ผลการค้นหาชั้น http ที่ทำหน้าที่ GitWeb อย่างเป็นทางการโดยใช้ API ที่กำหนดค่าได้ง่ายผ่าน Node ให้ฉันรู้ว่าคุณคิดอย่างไรถ้าคุณใส่ไลบรารีใด ๆ ที่มีอยู่เพลิดเพลินกับ npm install gitweb 0: githubTooTallNatenode-gitweb. I ติดตั้งโหนดตรวจสอบและ v8-profiler บนเซิร์ฟเวอร์ของฉันและฉันสามารถแก้ปัญหา javascript จากระยะไกล ฉันยังสามารถทำ: profiler var ต้องการ (v8 profiler) profiler. takeSnapshot snapshot var (ชื่อ) เพื่อถ่ายภาพภายใน app ปัญหาเดียวคือฉันเห็นเฉพาะสคริปต์และตารางที่ปรึกษาในผู้ตรวจสอบฉันไม่เห็นแท็บโปรไฟล์ ฉันสงสัยว่าอาจทำให้ this. hi พยายามแก้ไขบั๊กสำหรับ js โหนด พยายาม ndb แต่พบว่ามีการ segfaulted กระบวนการ app เมื่อใดก็ตามที่คุณพยายามที่จะพิมพ์ตัวแปร พยายาม nodedebug แต่ไม่ได้โหลดหน้าอย่างถูกต้องและจากนั้นฉันตระหนักว่าจริงไม่เข้ากันได้กับโหนด 2.1 เพราะมี sendHeader แทน WriteHead Im เตรียมที่จะนำความพยายามในการนำขึ้นถึงวันที่ แต่คิด id ขอ first. would มัน เป็นไปได้ที่จะโต้ตอบกับ node. js จาก terminal เช่น python เป็น python ในทางหรือ bash - คุณได้รับข้อความนี้เนื่องจากคุณสมัครสมาชิกกลุ่ม Google Groups nodejs หากต้องการโพสต์ไปที่กลุ่มนี้ให้ส่งอีเมลไปที่พยักหน้า กูเกิลกรุ๊ปส์ หากต้องการยกเลิกการรับข่าวสารจากกลุ่มนี้ให้ส่งอีเมลไปที่ nodejsun กูเกิลกรุ๊ปส์ สำหรับตัวเลือกเพิ่มเติมโปรดเข้าสู่กลุ่มนี้ที่ groups. google.2010.04.29 เวอร์ชัน 0.1.93 แก้ไขเหตุการณ์สิ้นสุดในข้อความ HTTP แบบยาว chunked githubrynodeissuesissue77 ลบโมดูลเดิม httpold และ tcpold การสนับสนุนการค้นหา DNS MX (Jrmy Lal) แก้ไขซ็อกเก็ตขนาดใหญ่เขียน (t (Felix Geisendrfer) อนุญาตให้ผู้โทรปิดใช้งานพารามิเตอร์ PHPRails mungeing.2010.04.23 เวอร์ชัน 0.1.92 การสนับสนุน OpenSSL ยังไม่มีเอกสาร (ดูการทดสอบ) (Rhys Jones) API: มีเหตุการณ์ข้อผิดพลาดที่ไม่สามารถจัดการได้ ชั้นของสคริปต์ที่มี eval-function-family ในการรวม (evals) และการทดสอบ (Herbert Vojcik) stream. setKeepAlive (Julian Lamb) ข้อผิดพลาด: บังคับให้ไม่มีเนื้อหาใน http 204 และ 304 อัปเกรด Waf เป็น 1.5.16, V8 ถึง 2.2.4.2 ดาวน์โหลด: nodejs.2010.05.06, 0.1.94 เวอร์ชัน usrlocallibnode สำหรับโมดูล , เพื่อให้ theres วิธีการติดตั้งโมดูลทั่วโลก (Issac Schlueter) การปรับปรุง SSL (Rhys Jones, Paulo Matias) เพิ่มส่วนหัว c-ares สำหรับ linux-arm (Jonathan Knezek) เพิ่มสัญลักษณ์เพื่อปล่อย build HTTP upgrade upgrades, docs (Micheil Smith) เซิร์ฟเวอร์ HTTP ส่งเสียง clientError แทนการพิมพ์ข้อความฉันเริ่มเขียน ncurses ที่มีผลผูกพันกับโหนดและกำลังทำงานเป็นปัญหาเมื่อจัดการกับเหตุการณ์ ฉันสามารถแตะลงในห่วงเหตุการณ์หลักจากการผูกของฉันเพื่อที่ฉันจะสามารถเรียกไลบรารีที่จะตรวจสอบว่าข้อมูลมีอยู่ในปัจจุบันแล้วปล่อยเหตุการณ์ถ้ามีข้อมูลฉันหวัง theres วิธีการทำเช่นนี้ดังนั้นฉันไม่ต้อง รีสอร์ทของฉันใช้ Postgres Ryans ผูกพันเรียน learn. Im ซื้อ บริษัท ให้บริการพื้นที่ที่มีสภาพแวดล้อมที่เข้ากันได้กับโหนด ฉันจำได้ว่ามีคนพูดถึงปัญหาเกี่ยวกับ DreamHost (อัปยศฉันใช้พวกเขาและรักพวกเขา) ฉันสร้าง stub และจะเริ่มต้นทดสอบ hosting บริษัท เป็นเวลาและเงินอนุญาต แต่ถ้าคุณทราบแผนโฮสติ้งที่ทำหรือไม่ทำงานหรือ caveats ใดเพื่อเรียกใช้โหนดโปรดตอบกลับที่นี่และหรือเพิ่มลงในหน้า: http: im พยายามทำงานออกเป็นวิธีที่ดีเพื่อทดสอบเหตุการณ์ async javascript กับโหนด นี่คือความสำคัญของมัน: gist. github401688comments Im ไม่ super คุ้นเคยกับ ins และลึกหนาบางของ js - Id ต้องการพับไป Async. testevents. emit (testconnect) เรียก Test Line มีรูปแบบด้านใดใน JS ที่ ฉันสามารถใช้เพื่อ rebind เหตุการณ์โดยไม่ต้อง 2010.05.13, Version 0.1.95 เปลี่ยน GC idle แจ้งเพื่อให้ทำงานเคียงข้าง setInterval ติดตั้ง nodebuffer. h ในการติดตั้ง fs. readFile ส่งกลับบัฟเฟอร์ตามค่าเริ่มต้น (Tim Caswell) แก้ไขรายงานข้อผิดพลาด ในการเรียกกลับมาของ childprocess ตรรกะที่ดีกว่าสำหรับการทดสอบถ้าอาร์กิวเมนต์เป็นพอร์ตการปรับปรุงข้อผิดพลาดในการรายงาน (โหนด node. js เดี่ยว: ข้อผิดพลาด 176: 9) การแก้ไข: การตอบสนอง http บางรายการถูกตัดทอน

No comments:

Post a Comment