c#调用BCB 的dll,debug模式成功,切换成Release模式提示找不到指定模块??

marklr 2014-05-05 05:18:50
搞不明什么回事,请高人指点一下,以下函数以及调用在vs2010的Debug模式下完全正常。切换成Release模式提示 无法加载 DLL“testdll.dll”: 找不到指定的模块。

BCB

extern "C" _declspec(dllexport) char * __stdcall CircleAreaB();

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//---------------------------------------------------------------------------

char * __stdcall CircleAreaB()
{
//AnsiString s=r;
AnsiString s="你好,这是一个密码字符串password";
return s.c_str();
}




c#


[DllImport("testdll.dll", EntryPoint = "CircleAreaB")]
public static extern string CircleAreaB();

private void button3_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder(CircleAreaB(), 32);
MessageBox.Show(sb.ToString());
}
...全文
283 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Teng_s2000 2014-05-05
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
理论上说stringbuilder效率更高。
确实是,string定长,改变字符串要重新内存分配 不过没亲自测试过具体性能差异有多大
threenewbee 2014-05-05
  • 打赏
  • 举报
回复
理论上说stringbuilder效率更高。
marklr 2014-05-05
  • 打赏
  • 举报
回复
测试了,的确是路径问题,谢谢。另外想问一下,其实我直接用 string 接收结果也一样,有必要使用 StringBuilder 吗?
threenewbee 2014-05-05
  • 打赏
  • 举报
回复
你需要把dll拷贝过去。 不过最好的办法,是添加到项目中,选择生成模式为总是复制。
threenewbee 2014-05-05
  • 打赏
  • 举报
回复
dll的路径问题

110,538

社区成员

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

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

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