C++,C#双面手请进,CLI\C++ 调用C# library 方法
近在做一个项目,需要加解密,算法是用C#写的, 然后用C++及CLI\C++以Mixed Mode写一个DLL,这个DLL最终是要被纯C++调用的,调用的人完全不懂C#。C#做的加解密大致是
C#:
public class Encryptor{
public:
Encryptor(string keyIV);
bool Encrypt(string sourcefile, string destfile) {
...
}
bool Decrypt(string sourcefile, string destfile) {
...
}
}
C++CLI写的DLL是这样的:
BOOL EncryptWrapper::EncryptWrapper(LPCWSTR lpszSourceFile, LPCWSTR lpszDestFile) {
BOOL ret = FALSE;
string^ source = gcnew String(lpszSourceFile);
string^ des = gcnew String(lpszDestFile);
Encryptor^ encryptor = gcnew Encryptor(m_keyIV);
encryptor->EncryptFile(source, des);
return ret;
}
编译的时候出现错误:
Error 5 error C2039: 'EncryptW' : is not a member of 'XXX::NetUtil::Encryptor'
我理解大致上错误就是Unicode的版本方法需要加W。
我的疑问就是为什么我调用系统类库,只要按msdn的方法不需要加W,或者A。自己编译的Class Library就会出现这类问题?
项目很急,急需大家帮忙。
--------------------编程问答-------------------- 楼主是要把c#代码转c++的嘛?//
--------------------编程问答--------------------
是的,就是写一个wrapper dll给c++调用,不想用com来interop。 --------------------编程问答-------------------- OpenGL高手请进:http://topic.csdn.net/u/20100616/11/4419a6ae-978f-4c73-a6ec-ed71477304c3.html --------------------编程问答-------------------- 应该不会是这样的错误,
是否有重名的方法。。 --------------------编程问答-------------------- 比如 系统的 API --------------------编程问答-------------------- 参考这个资料吧!
怎样在MFC中调用C#编写的DLL
http://dotnet.chinaitlab.com/CSharp/749026.html --------------------编程问答--------------------
EncryptFile这个方法是哪里来的?应该是encryptor->Encrypt(source, des);? --------------------编程问答-------------------- 不懂,帮顶
补充:.NET技术 , .NET Framework