月 月明风轻 Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #1 Dll中代入参数使用自定义类型, 那么自定义类型中的一项可以使用String类型吗? 还是也要用Pchar?
月 月明风轻 Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #3 Array of Char? 不是很明白, 我定义的数据类型是这样的: Type TMessage = record Command : TCommand; SenderName : String[20]; ReceiverName : String[20]; Msg : String[128]; MsgCount : integer; CheckWord : String[32]; end; TCommand也是自宝义类型
Array of Char? 不是很明白, 我定义的数据类型是这样的: Type TMessage = record Command : TCommand; SenderName : String[20]; ReceiverName : String[20]; Msg : String[128]; MsgCount : integer; CheckWord : String[32]; end; TCommand也是自宝义类型
F fxh7622 Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #4 在DLL内部可以使用String类型。 在DLL和EXE的接口中可以使用String[]方式。但是最好使用Pchar或者array of char类型。
月 月明风轻 Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #6 String类型在dll中弊端是什么? 这个在帮助里面有`~
G guanweiw Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #7 TCommand和TMessage的声明. 在Dll中,和在主程序中,声明的一摸一样, 就可以在调用Dll的时候,传入TMessage了.
月 月明风轻 Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #8 TCommand和TMessage里面的数型是String没关系吗?
G guanweiw Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #9 对,没关系.只要在DLL和主程序的工程单元,引用ShareMem就行了. 你可以看一下,当你在创建一个DLL的时候,工程单元会有一大段话,就是在说这个问题. 如果你的Dll只是Delphi程序调用,肯定没有问题.但如果其他程序调用(例如VC写的),可能就有一定的问题了,要开辟共享内存之后,你的Dll才能被其他程序调用.
对,没关系.只要在DLL和主程序的工程单元,引用ShareMem就行了. 你可以看一下,当你在创建一个DLL的时候,工程单元会有一大段话,就是在说这个问题. 如果你的Dll只是Delphi程序调用,肯定没有问题.但如果其他程序调用(例如VC写的),可能就有一定的问题了,要开辟共享内存之后,你的Dll才能被其他程序调用.
G guanweiw Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #11 那你最好不要用自定义结构体的方式, 因为我觉得,如果这样, 你很难要求别人在他们自己的程序里,定义一个和你定义的一摸一样的东西, 尤其是非Delphi的程序.