各位好,
目前照著底下教學create windows service app, 也成功執行。
但想要在timer裡呼叫DLL裡的function卻失敗, 以下是相關code, 使用VS2017 build
DLL:
//MyDll.h
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
extern "C" MYDLL_API int MyFunc();
//MyDll.cpp
#include "pch.h"
#include "framework.h"
#include "MyDll.h"
int MyFunc()
{
return 1;
}
Windows Service:
// Add reference before build
using System.Runtime.InteropServices;
[DllImport("MyDll.dll", EntryPoint = "MyFunc", CallingConvention = CallingConvention.Cdecl)]
public static extern int MyFunc();
// 於timer中呼叫
int tmp = MyFunc();
此DLL在C# Winform可以被呼叫, 但在Windows service卻無法, 也沒有錯誤訊息,
使用debugger執行到該行會顯示"Timer.cs not found"