日期:2014-05-17  浏览次数:21278 次

求教高手!!!!!!
一个对呼叫中心进行二次开发的项目,开发包是VC写的,现在要求用C#写。C#中如何使用VC的头文件?请各位大侠指教!
代码如下:#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include   <windows.h> 
#pragma comment(lib,"LClientDll.lib")

#define DllAPI   __declspec(dllimport)
//extern "C"
//{
DllAPI int __stdcall  LClientStartDemo(char *host, char *port, char *oper, char *ch, int flag); 
DllAPI int __stdcall  LClientRcvDemo(char *data);
DllAPI int __stdcall  LClientStop();
//}
//这只是演示调用,真正的调用,请使用定时器调用
int main(int argc, char* argv[])
{
int r=0;
char str[100];

while(1==1) //这个循环确保即使LQ停止重启动也能自动重新链接
{

r=LClientStartDemo("127.0.0.1", "7628", "801", "0", 1);

while(1==1){
//Sleep(200); //其实这个sleep不一定需要
memset(str,0,sizeof(str));
r=LClientRcvDemo(str);
printf("r=%d \n",r);
if(r==-100) continue;
if(r>0)
{
  printf("r=%d data=[%s]\n",r,str);
  
}
else
{
printf("r=%d restart...\n",r);
break;
}

}//while
LClientStop();

}//for


return 0;
}
希望各位大侠不吝惜源码谢谢,急!

------解决方案--------------------
虽然不知道,还是帮LZ顶一下
------解决方案--------------------
在c#中,只能Import那个DLL,然后手工调用,没法自动识别.H文件的。
下面是个例子:


        [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetDiskFreeSpaceEx(String lpDirectoryName,
        out ulong lpFreeBytesAvailable,
        out ulong lpTotalNumberOfBytes,
        out ulong lpTotalNumberOfFreeBytes);

------解决方案--------------------