我需要从win32 dll访问功能,因为我在C#代码中使用[dllimport]。
我需要使用[dllimport]为以下c ++方法创建的确切方法签名
void GetGeneratedKey(char *code, int len, char *key)
请帮忙。
由于
NRK
答案 0 :(得分:3)
这在很大程度上取决于本机C函数中变量key
和code
的变化。基于签名,我猜测正在读取code
并正在写入key
。如果是这种情况,请尝试以下签名
[DllImport("SomeDll")]
public static extern void GetGeneratedKey(
[In] string code,
[In] int length,
StringBuilder key);
答案 1 :(得分:1)
只需使用string
即可。应该工作。
答案 2 :(得分:0)
VC ++方法签名
void GetGeneratedKey(char * code,int len,char * key)
C#签名
[的DllImport( “SomeDll”)]
public static extern void GetGeneratedKey(byte [] code,int len,bute key);
NRK
答案 3 :(得分:0)
以下是我对非托管案例的解决方案。
C ++
void GetGeneratedKey(
const char *code,
int length,
char *key);
C#
[DllImport("Some.Dll")]
public static extern void GetGeneratedKey(
[MarshalAs(UnmanagedType.LPStr)]string code,
int length,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder key);