这样的函数怎么dllimport
int WINAPI SysEnableCard( const char * configFile, const char * promptVoiceIdxFile )
问题点数:20、回复次数:8Top
1 楼Knight94(愚翁)回复于 2006-07-04 11:57:23 得分 0
Have a try!
[DllImport(...)]
public extern static int SysEnableCard( StringBuilder configFile, StringBuilder promptVoiceIdxFile )
Top
2 楼deadshot123(空调=头晕)回复于 2006-07-04 12:09:15 得分 0
跟用ref string 调用一样的结果
const有没有影响?Top
3 楼Knight94(愚翁)回复于 2006-07-04 12:15:36 得分 20
没有太大影响,const只是标明在函数内部不能被修改而已。Top
4 楼Knight94(愚翁)回复于 2006-07-04 12:17:34 得分 0
还不行吗?
那就如下试试!
const char *:[In, MarshalAs(UnmanagedType.LPTStr )]Top
5 楼Knight94(愚翁)回复于 2006-07-04 12:17:43 得分 0
const char *:[In, MarshalAs(UnmanagedType.LPTStr )] stringTop
6 楼deadshot123(空调=头晕)回复于 2006-07-04 12:59:43 得分 0
c++中使用SysEnableCard("","prompt.ini");调用正常
c#
public extern static int SysEnableCard([In, MarshalAs(UnmanagedType.LPTStr )] string configFile,[In, MarshalAs(UnmanagedType.LPTStr )] string promptVoiceIdxFile);
public extern static int SysEnableCard(StringBuilder configFile, StringBuilder promptVoiceIdxFile );
public extern static int SysEnableCard(ref StringBuilder configFile, ref StringBuilder promptVoiceIdxFile );
public extern static int SysEnableCard(ref string configFile, ref string promptVoiceIdxFile );
public extern static int SysEnableCard(string configFile, string promptVoiceIdxFile );Top
7 楼Knight94(愚翁)回复于 2006-07-04 13:09:49 得分 0
你在dllimport中是否加入了charset标示?Top
8 楼deadshot123(空调=头晕)回复于 2006-07-05 12:55:52 得分 0
3Q CharSet=CharSet.Auto,
没有测试Ansi,Ansi和Nono都可以,Unicode不可以
参数用string StringBuilder托管都对的Top




