小编Sas*_*zem的帖子

使用从D导出的DLL

我在D中创建了一个简单的加密程序,我有想法从中创建一个DLL并尝试将其导入到例如Python中.

我可以简单地调用我的main函数,因为它不需要任何参数.但是当我使用我的加密方法时,它使用动态长度ubyte[]数组,但据我所知,它们不存在于其他基于C/C++的语言中.

例如,我的一个函数的第一行:
ubyte[] encode(ubyte[] data, ubyte[] key){

但是我不能在没有固定长度的情况下使用其他语言的数组!如何导入该函数,例如,在Python中?

编辑:

我知道我可以创建一个包含指针和数组长度的包装器,但是不是更优雅的解决方案吗?
(我不需要使用D来使用用D编写的lib)

python dll d

6
推荐指数
1
解决办法
92
查看次数

Python:浮点数或双精度数

我需要使用struct模块在 Python 中打包数字。我想在打包时检查一个数字是否为floatdouble。我怎样才能做到这一点?是否有任何内置函数,或者我需要编写一个?或者我需要为简单的Floats编写一个类,而不是使用 python 的floats(实际上是Doubles)?

提前致谢!

python floating-point double types

3
推荐指数
1
解决办法
1万
查看次数

将this指针传递给构造函数

我正在尝试在D中编写一个程序,该程序涉及一个在新客户端加入时Server创建新Client对象的类.我想在创建时将服务器对象传递给客户端,但是稍后当我尝试Server从客户端访问该对象时,我的程序将以错误代码-11停止.我用Google搜索但没有发现任何东西.

我已成功在以下代码段中重新创建此行为:

import std.stdio;



class Server
{
public:
    int n;
    Client foo() //Foo creates a new client and passes this to it
    {return new Client(this);}
}

class Client
{
public:
    this(Server sv) //Constructor takes Server object
    {sv=sv;}
    Server sv;
    void bar() //Function bar tries to access the server's n
    {writeln(sv.n);}
}

void main()
{
Server s = new Server; //Create a new server object
Client c = s.foo(); //Then ask …
Run Code Online (Sandbox Code Playgroud)

oop constructor d this

1
推荐指数
1
解决办法
61
查看次数

标签 统计

d ×2

python ×2

constructor ×1

dll ×1

double ×1

floating-point ×1

oop ×1

this ×1

types ×1