2012-12-13 40 views
2

我想要得到game-music-emu-flash與FlasCC一起工作。它使用C/C++ Game_Music_Emu庫,最初是用Alchemy編譯的,但我想看看FlasCC是否有性能提升。由於當前項目ActionScript與FlasCC不兼容,因此我想使用帶有類型映射的SWIG來調用該庫。我遵循示例中的代碼。我還沒有編碼的typemaps但但現在我創建swig.i作爲Adob​​e鍊金術編譯SWC - 不知道如何編譯FlasCC的庫

#ifdef SWIG 
%module libgmeLibModule 
%{ 
#include "gme/gme.h" 
%} 
%include "gme/gme.h" 
#else 
#include "gme/gme.h" 
#endif 

和Makefile文件通過更換什麼需要符合嚴格參照樣本。在編譯過程中我得到的所有形式

libgmeLib_wrapper.cpp: In function `void _wrap_gme_ay_type_get()': 
libgmeLib_wrapper.cpp:2575: error: invalid conversion from `const void*' to `void*' 
libgmeLib_wrapper.cpp:2575: error: initializing argument 1 of `void* memcpy(void*, const void*, size_t)' 

all:下在Makefile與

"$(FLASCC)/usr/bin/g++" $(BASE_CFLAGS) -04 gmemain.cpp gme/*.cpp -emit-swc=sample.libgme -o libgme.swc 

編譯本身類似的錯誤,編譯沒有錯誤。

我不知道C++,所以任何幫助表示讚賞。也將使用SWIG和類型映射的方式去或手動包裝是否有意義?我認爲SWIG會更好,因爲gme是一個體面的大小的圖書館。

回答

1

一位Adobe員工幫我解決了這個問題。他甚至編了一個演示。 可以找到Adobe論壇主題here和他的演示可以在gme-flascc

+0

嗯,這是否支持的文件格式直接發送到您的計算機上的主要聲音驅動程序?或者你需要先將文件bytearray傳遞給它,然後獲取輸出並將其傳遞給AS3中Sound對象上的SampleDataEvent? – bigp

+0

我正在使用ByteArray和Sound對象。 gme-flascc正在使用vfs來測試它。 –