CppSharp
CppSharp copied to clipboard
The functions are lost during conversion.
Brief Description
When I was converting the following code, I found that only the functions of int were converted, while other functions such as path_t were not converted.
OS: Windows 10 20H2
Used headers
#include "filesystem_utils.h"
#ifndef WAIFU2X_NCNN_VULKAN_WRAPPER_H
#define WAIFU2X_NCNN_VULKAN_WRAPPER_H
#endif //WAIFU2X_NCNN_VULKAN_WRAPPER_H
class _declspec(dllexport) Waifu2xWrapper
{
public:
~Waifu2xWrapper();
Waifu2xWrapper();
void setInput(path_t input);
void setOutput(path_t output);
void setNoise(int p_noise);
void setScale(int p_scale);
void setTilesize(std::vector<int> size);
void setModel(path_t p_model);
void setGpu(std::vector<int> gpu);
void setJobsLoad(int load);
void setJobProc(std::vector<int> proc);
void setJobSave(int save);
void setTtaMode(int mode);
void setFormat(path_t p_format);
int execute();
private:
path_t inputpath;
path_t outputpath;
int noise;
int scale;
std::vector<int> tilesize;
path_t model;
std::vector<int> gpuid;
int jobs_load;
std::vector<int> jobs_proc;
int jobs_save;
int verbose;
int tta_mode;
path_t format;
};
Used settings
class Cpp : ILibrary
{
public override void Postprocess(Driver driver, ASTContext ctx)
{
}
public override void Preprocess(Driver driver, ASTContext ctx)
{
}
public override void Setup(Driver driver)
{
var options = driver.Options;
options.GeneratorKind = GeneratorKind.CSharp;
var module = options.AddModule("Waifu2x");
module.IncludeDirs.Add(@"C:\Codes\C\Waifu2x-Vulkan-Library\src");
module.Headers.Add("wrapper.h");
module.LibraryDirs.Add(@"C:\Codes\C#\Waifu2x-Vulkan-CSharp");
module.Libraries.Add("Waifu2x-Vulkan-Library.dll");
}
public override void SetupPasses(Driver driver)
{
driver.Context.TranslationUnitPasses.RenameDeclsUpperCase(RenameTargets.Any);
driver.Context.TranslationUnitPasses.AddPass(new FunctionToInstanceMethodPass());
}
}
Target: MSVC
Stack trace or incompilable generated code
[StructLayout(LayoutKind.Sequential, Size = 232)]
public partial struct __Internal
{
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__W___N_std_S_char_traits__W___N_std_S_allocator__W inputpath;
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__W___N_std_S_char_traits__W___N_std_S_allocator__W outputpath;
internal int noise;
internal int scale;
internal global::Std.Vector.__Internalc__N_std_S_vector__I___N_std_S_allocator__I tilesize;
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__W___N_std_S_char_traits__W___N_std_S_allocator__W model;
internal global::Std.Vector.__Internalc__N_std_S_vector__I___N_std_S_allocator__I gpuid;
internal int jobs_load;
internal global::Std.Vector.__Internalc__N_std_S_vector__I___N_std_S_allocator__I jobs_proc;
internal int jobs_save;
internal int verbose;
internal int tta_mode;
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__W___N_std_S_char_traits__W___N_std_S_allocator__W format;
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "??0Waifu2xWrapper@@QEAA@XZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ctor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "??0Waifu2xWrapper@@QEAA@AEBV0@@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0);
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "??1Waifu2xWrapper@@QEAA@XZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "?setNoise@Waifu2xWrapper@@QEAAXH@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void SetNoise(__IntPtr __instance, int p_noise);
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "?setScale@Waifu2xWrapper@@QEAAXH@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void SetScale(__IntPtr __instance, int p_scale);
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "?setJobsLoad@Waifu2xWrapper@@QEAAXH@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void SetJobsLoad(__IntPtr __instance, int load);
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "?setJobSave@Waifu2xWrapper@@QEAAXH@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void SetJobSave(__IntPtr __instance, int save);
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "?setTtaMode@Waifu2xWrapper@@QEAAXH@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void SetTtaMode(__IntPtr __instance, int mode);
[SuppressUnmanagedCodeSecurity, DllImport("Waifu2x-Vulkan-Library", EntryPoint = "?execute@Waifu2xWrapper@@QEAAHXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern int Execute(__IntPtr __instance);
}