Browse Source

Fixed binding problem with string vector in NativeLibrary.

Re-generated the bindings.
pull/146/merge
triton 12 years ago
parent
commit
b23c1f97f2
  1. 7
      src/CppParser/AST.h
  2. 1
      src/CppParser/Bindings/CLI/AST.cpp
  3. 12
      src/CppParser/Bindings/CSharp/AST.cs

7
src/CppParser/AST.h

@ -25,6 +25,11 @@
type get##name (unsigned i) { return name[i]; } \ type get##name (unsigned i) { return name[i]; } \
unsigned get##name##Count () { return name.size(); } unsigned get##name##Count () { return name.size(); }
#define VECTOR_STRING(name) \
std::vector<std::string> name; \
const char* get##name (unsigned i) { return name[i].c_str(); } \
unsigned get##name##Count () { return name.size(); }
#define STRING(name) \ #define STRING(name) \
std::string name; \ std::string name; \
const char* get##name() { return name.c_str(); } \ const char* get##name() { return name.c_str(); } \
@ -614,7 +619,7 @@ struct CS_API TranslationUnit : public Namespace
struct CS_API NativeLibrary struct CS_API NativeLibrary
{ {
STRING(FileName) STRING(FileName)
VECTOR(std::string, Symbols) VECTOR_STRING(Symbols)
}; };
struct CS_API ASTContext struct CS_API ASTContext

1
src/CppParser/Bindings/CLI/AST.cpp

@ -2501,6 +2501,7 @@ CppSharp::Parser::AST::NativeLibrary::NativeLibrary(System::IntPtr native)
System::String^ CppSharp::Parser::AST::NativeLibrary::getSymbols(unsigned int i) System::String^ CppSharp::Parser::AST::NativeLibrary::getSymbols(unsigned int i)
{ {
auto __ret = ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->getSymbols(i); auto __ret = ((::CppSharp::CppParser::AST::NativeLibrary*)NativePtr)->getSymbols(i);
if (__ret == nullptr) return nullptr;
return clix::marshalString<clix::E_UTF8>(__ret); return clix::marshalString<clix::E_UTF8>(__ret);
} }

12
src/CppParser/Bindings/CSharp/AST.cs

@ -5820,6 +5820,11 @@ namespace CppSharp
EntryPoint="??0NativeLibrary@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] EntryPoint="??0NativeLibrary@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")]
internal static extern global::System.IntPtr NativeLibrary_2(global::System.IntPtr instance, global::System.IntPtr _0); internal static extern global::System.IntPtr NativeLibrary_2(global::System.IntPtr instance, global::System.IntPtr _0);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getSymbols@NativeLibrary@AST@CppParser@CppSharp@@QAEPBDI@Z")]
internal static extern global::System.IntPtr getSymbols_0(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getFileName@NativeLibrary@AST@CppParser@CppSharp@@QAEPBDXZ")] EntryPoint="?getFileName@NativeLibrary@AST@CppParser@CppSharp@@QAEPBDXZ")]
@ -5883,6 +5888,13 @@ namespace CppSharp
Marshal.FreeHGlobal(__Instance); Marshal.FreeHGlobal(__Instance);
} }
public string getSymbols(uint i)
{
var __ret = Internal.getSymbols_0(__Instance, i);
if (__ret == global::System.IntPtr.Zero) return null;
return Marshal.PtrToStringAnsi(__ret);
}
public string FileName public string FileName
{ {
get get

Loading…
Cancel
Save