C#中调用dll的问题

潮水2013 2005-10-18 06:41:59
函数的dll原型为:
long TV_StartRecordFile(int,char *,long,long);

在C++例子中中调用为
m_FilePath="test.tw";
TV_StartRecordFile(0,m_FilePath.GetBuffer(512),01024*32);

我在C#中是这样做的
函数的定义为
[DllImport(@"d:\tw16vid.dll")]
public static extern int TV_StartRecordFile(int chNo,
[MarshalAs(UnmanagedTypeLPStr)]
string file,long begin,long size);
函数调用为:
string file="test.tw";
Telewind.TV_StartRecordFile(0,file,0,1032*32);

但是用C++调用的时候函数的返回值为正常,用C#调用的时候函数的返回值出错。
是什么原因呢?是不是我的file中类型定义出错了?
请高手指点,谢谢。


...全文
143 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordragon 2005-10-18
  • 打赏
  • 举报
回复
using System.Text;

[DllImport("tw16vid.dll", EntryPoint="TV_StartRecordFile")]
public static extern long TV_StartRecordFile(
int chNo,
StringBuilder file,
long begin,
long size);
潮水2013 2005-10-18
  • 打赏
  • 举报
回复
这个无所谓的,我用long也不行。
looner 2005-10-18
  • 打赏
  • 举报
回复
返回值该是long啊,你写成int了
潮水2013 2005-10-18
  • 打赏
  • 举报
回复
急啊,请高手解答

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧